我正在构建一个应用程序来更好地学习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助手中添加一些东西,但我不知道该放什么。或者也许还有其他地方我也应该添加信息。
答案 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) %>
基本上将变量的哈希值作为映射传递给您在模板中使用的变量。
希望有所帮助