5
나는 액체 템플릿을 DB에 저장하고 렌더링하기 전에 템플릿에 필요한 모든 매개 변수가 제공되는지 확인하고 싶습니다. 이제는 다음과 같은 것을 발견했습니다.액체 템플릿의 모든 값이 제공되는지 확인하는 방법은 무엇입니까?
parsed = Liquid::Template.parse(string_with_template)
required = parsed.instance_values["root"].instance_values["nodelist"].select{ |v| v.is_a?(Liquid::Variable) }.map(&:name)
그리고 나서 렌더링 전에 함수
def has_all_required?(liquid_params, required)
keys = liquid_params.keys
required.each{|e| return false unless keys.include?(e) }
return true
end
이 유효성 검사를 수행하는 더 깨끗한 방법이 있습니까?
모든 제안 주셔서 감사합니다, Santuxus
문제는 관리자 패널에서 템플릿을 편집 할 수 있기 때문에 필요한 모든 값을 알고 있다면 일반적인 방법이 필요하다는 것입니다. 예를 들어 답을 주셔서 감사합니다.) 예를 들면 다음과 같습니다. page_title의 값은 'This is {{product_name}}'이며 '{product_price}}'의 {{product_name}}입니다. – santuxus