【发布时间】:2016-04-05 02:41:25
【问题描述】:
是否可以为 :html 响应覆盖 Rails 的渲染行为?我想始终呈现相同的模板(忽略神奇的视图查找)。
我正在编写一个单页应用程序,这似乎应该是可能的......基本上,如果它被请求为 :json 它应该呈现 JSON,但如果它被请求为 :html 它应该传递数据无论如何都到相同的视图(它将在正文中呈现为 JSON)。
【问题讨论】:
-
这是否意味着您希望在 HTML 的
<body>标记中包含 JSON。还是您的意思是 HTML 响应的正文? -
对不起.. 我想我不明白你的问题。如果您正在编写单页应用程序,这是否意味着您将通过 ajax 发出请求?如果是这样,你为什么要渲染其他 html 视图? json还不够吗?如果你想在你的 json 模板上重用代码,你可以使用 jbuilder gem。
-
@AnthonyE 我确实希望 JSON 在
script标签内呈现,是的。和@Aldana 提前将给定页面所需的数据引导到脚本元素中是很常见的做法;它会在您启动应用程序时保存请求。 -
@Crisfole 嘿.. 我一直在考虑这个.. 你找到解决方法了吗? method_missing 怎么样?元编程可能是这里的答案。
-
嘿,我刚刚创建了布局和一堆空的
.html.erb文件。为我工作。
标签: ruby-on-rails content-negotiation