将可变轨道传递到液体在控制台中有效,但在视图中无效



我想将哈希传递给呈现方法。在我的控制台中,当我这样做时,一切都很好:

@object = Object.find(params[:id])
@hash_object = @object.to_liquid
@template = Liquid::Template.parse("Welcome to {{object_title}}")
@template.render('object_title' => @hash_object["title"])

但是,当我想通过我的控制器呈现页面,并通过一个需要香草液体的应用程序代理将其传递时,哈希键不会出现。但它被解读了,因为视图显示了空白。如果它根本不起作用,视图将显示:";欢迎使用{{object_title}}"或者甚至因为语法错误而不加载。

我几乎尝试了所有可能的方法来渲染模板。接下来的两次选拔赛不会出现错误,但只显示标题应该出现的空白:

@pageview = Liquid::Template.parse(File.read(Rails.root + "app/views/app_proxy/show.html.erb"))
render text: @pageview.render('object_title' => @hash_object["title"]), content_type: "application/liquid"

第二个(我认为它更干净,更像卢布(:

respond_to do |format|
format.html do
render text: @pageview.render('object_title' => @hash_object["title"]), layout: false,  content_type: "application/liquid"
end
end

这些渲染图中的错误在哪里,或者我遗漏了什么?

@变量被分配给类的实例,而不是类本身,因此您需要将其声明为"初始化";

render html:而非render text:

相关内容

最新更新