一直试图让液体 gem 在 rails 中工作

Stuck trying to get the liquid gem to work in rails

我正在构建一个应用程序来更好地学习 rails,并且我正在尝试实施液体 gem

只是想保持简单,这样我就可以通过让@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 帮助器中添加一些东西,但我不确定该放什么。或者也许还有其他地方我也应该添加信息。

关注 liquid gem 文档以更好地理解基础知识。在你的情况下 Liquid::Template.parse() 应该是这样的:

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

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

根据液体 gem 文档示例:

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

试试这个

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

基本上将变量的散列作为映射传递到您在模板中使用的变量。

希望对您有所帮助