首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在html视图中呈现JBuilder视图

在html视图中呈现JBuilder视图
EN

Stack Overflow用户
提问于 2013-01-22 21:31:25
回答 1查看 7.5K关注 0票数 22

我已经用JBuilder创建了一个json视图。但我希望将其预加载到数据对象中,以便Backbone可以在早期访问数据,而无需获取数据。

如何在我的list.html.erb视图中呈现list.json.jbuilder视图?

通常,如果没有jbuilder,我会这样做:

代码语言:javascript
复制
<div data-list="<%= @contents.to_json %>"></div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-12 06:20:49

当从视图中调用render时,它返回传递的模板或部分的字符串呈现;您可以根据需要将该字符串嵌入到视图中。但请注意:

  • 您必须在模板名称后面附加类型后缀/extension。如果不这样做,Rails可能会对调用哪个模板文件感到困惑;例如:它可能会选择list.html.erb而不是list.json.jbuilder。如果您从list.html.erb进行此调用,则尝试呈现list.html.erb将导致无限递归和SystemStackError。使用render:format选项似乎不起作用。
  • 您必须指定模板的限定路径;它不会为"list.json“找到正确的模板,因为list.json.jbuilderlist.html.erb驻留在同一目录中。
  • 您需要通过raw传递render调用的输出;否则,当它嵌入到视图中时,它将被转义。

因此,对于您的示例,假设您的模板是/app/views/foo格式的,您可以这样写

代码语言:javascript
复制
<div data-list="<%= raw render(:template => "foo/list.json", :locals => { :contents => @contents }) %>"></div>
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14459750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档