【发布时间】:2014-02-11 20:44:04
【问题描述】:
我有一个控制器,它从数据库中获取一些数据,并且在我的浏览器中很好地呈现了一个 html 视图。
现在我需要在我的 html 中引导一些 json(供 javascript 使用)。
我添加以下代码在控制器中渲染 json:
@my_json = render_to_string(template: 'dimension_types/index.json.jbuilder')
我什么也不做,只需将这段代码添加到我的控制器中,现在浏览器只会显示我页面的 html 代码。 在 html 源代码中,我的页面包含在 <pre></pre> 标记中.
日志中没有错误。我尝试添加 layout: false,传递处理程序和格式的各种组合来渲染 - 没有任何变化。
我做错了什么?我缺少文档的哪一部分?
【问题讨论】:
-
是否打算呈现 JSON 而不是 HTML?可能视图处理默认为 HTML,而不是 JSON
-
成功找到模板。正如我所说,我尝试了格式: :jbuilder 等。
-
该代码不会为您呈现 JSON,它会将您的 JSON 模板呈现为实例变量,然后呈现常规 HTML 或它可以找到的任何模板。您应该有一个 JSON 类型的动作模板,或者在动作中渲染 :json => ...。
-
这正是我想做的:将 json 渲染成一个变量
-
应该可以,那么您在控制器中还做了什么?
标签: ruby-on-rails json ruby-on-rails-4