坚持试图让液体宝石在铁轨上工作

时间:2016-01-14 10:12:20

标签: ruby-on-rails ruby-on-rails-4 rubygems liquid

我正在构建一个应用程序来更好地学习rails,我正在尝试实现液体宝石

只是试图保持简单,这样我就可以让它工作并通过让@ guide.name通过液体模板来理解它,但当我将{{ @guide.name }}放入模板时它根本不会渲染。

category_item控制器

def show
     @guide = Guide.friendly.find(params[:guide_id])
     @category = Category.friendly.find(params[:category_id])
     @category_item = Category.friendly.find(params[:category_id]).category_items.friendly.find params[:id]
end

show.html.erb

<% template = Liquid::Template.parse(@category.template) %>

<%= template.render %>

和@ category.template是

the guide is {{ @guide.name  }}

如果我只是将hello放在@ category.template中,那么它会很好地呈现

我想我应该在category_item助手中添加一些东西,但我不知道该放什么。或者也许还有其他地方我也应该添加信息。

2 个答案:

答案 0 :(得分:1)

关注液体宝石文档以更好地了解基础知识。在您的情况下,Liquid::Template.parse()应该是这样的:

 <% template = Liquid::Template.parse('the guide is {{ @guide.name  }}') %>
 <%= template.render('@guide' => @guide) %>

规则:'string {{variable name only}} string '

根据液体宝石文档示例:

 @template = Liquid::Template.parse("hi {{name}}") # Parses and compiles the template
 @template.render('name' => 'tobi')                # => "hi tobi"

答案 1 :(得分:1)

试试这个

<% template = Liquid::Template.parse('the guide is {{ guide_name  }}') %>
<%= template.render('guide_name' => @guide.name) %>

基本上将变量的哈希值作为映射传递给您在模板中使用的变量。

希望有所帮助