如何在液体过滤器参数下访问变量?

时间:2014-09-26 13:39:46

标签: ruby liquid

module MyFilter
  def all_caps(input)
    input.upcase
  end
end

Liquid::Template.register_filter(MyFilter)

template = Liquid::Template.parse(" {{ 'hi john' | all_caps }} ")
template.render 
# => " HI JOHN "

template = Liquid::Template.parse(" {{ 'hi {{name}}' | all_caps }} ")
template.render('name' => 'john') 
# => " ' | all_caps }} "

我该如何解决这个问题?官方文件中没有提及。

注意:为了简单起见,我使用了all_caps示例。我想要实现一些复杂的事情。

1 个答案:

答案 0 :(得分:0)

我确实想办法做到这一点。如果有任何其他解决方案,我们将不胜感激。

template = Liquid::Template.parse("{% capture some_text %} Hi, {{name}} {% endcapture %} {{ some_text | all_caps }}")
template.render('name' => 'john')

希望这有帮助。