ruby-on-rails - 将rails变量传递给液体在控制台中有效,但不在视图中
问题描述
我想将哈希传递给渲染方法。在我的控制台中,当我这样做时一切正常:
@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
这些渲染中的错误在哪里或者我错过了什么?
解决方案
@ 变量被分配给类的实例,而不是类本身,因此您需要将其声明为“初始化”方法(或“设置”方法,如果是测试)
推荐阅读
- sql - 查询优化:拆分时慢查询更快
- arrays - 用于跟踪过去 4 周内事件发生次数的 Google 表格公式
- c# - C# Foreach 循环,帮助实现移动到 NEXT 和 PRIVIOUS 步骤
- c++ - 模板类中的模板函数
- r - 我不知道 R,我想用给定的 alpha 计算 R 中的 Spearman 相关性,并想知道 p 值
- javascript - 在 JavaScript 中的输入值之后添加文本
- json - 加载 json 文件以触发数据框
- opendj - 如何将自定义属性类型和对象类导入 OpenDJ 3.0?
- php - 带有特殊字符的 preg_replace_callback
- html - 溢出-y:滚动正在切割背景颜色