我用JBuilder创建了一个json视图。但是我想将它预加载到数据对象中,因此Backbone可以在早期访问数据而无需获取数据。
如何将list.json.jbuilder视图呈现到list.html.erb视图中?
通常没有jbuilder,我会做这样的事情:
<div data-list="<%= @contents.to_json %>"></div>
答案 0 :(得分:18)
render
,在视图中调用时,返回传递的模板或部分的字符串渲染;您可以根据需要将该字符串嵌入到视图中。请注意:
list.html.erb
而不是list.json.jbuilder
。如果您从 list.html.erb
进行此调用,则尝试呈现list.html.erb
会导致无限递归和SystemStackError。使用:format
的{{1}}选项似乎不起作用。render
与list.json.jbuilder
位于同一目录中。 list.html.erb
传递render
来电的输出;否则,当它嵌入视图时会被转义。因此,对于您的示例,您可以写这个,假设您的模板位于raw
:
/app/views/foo