加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 在html视图中渲染一个JBuilder视图

发布时间:2020-12-16 20:28:49 所属栏目:百科 来源:网络整理
导读:我已经用JBuilder创建了一个json视图.但是我想将其预加载到数据对象中,所以Backbone可以早日访问数据,而无需获取数据. 如何将list.json.jbuilder视图呈现到list.html.erb视图中? 通常没有jbuilder,我会做这样的事情: div data-list="%= @contents.to_json
我已经用JBuilder创建了一个json视图.但是我想将其预加载到数据对象中,所以Backbone可以早日访问数据,而无需获取数据.

如何将list.json.jbuilder视图呈现到list.html.erb视图中?

通常没有jbuilder,我会做这样的事情:

<div data-list="<%= @contents.to_json %>"></div>

解决方法

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

>您必须使用后缀/扩展名附加您的模板名称.如果不这样做,Rails可能会困惑你正在调用的模板文件;即:它可能会选择list.html.erb而不是list.json.jbuilder.如果您从list.html.erb进行此调用,则尝试渲染list.html.erb导致无限递归和SystemStackError.使用:format的格式选项似乎不起作用.
>您必须指定模板的限定路径;因为list.json.jbuilder位于与list.html.erb相同的目录中,所以找不到“list.json”的正确模板.
>您需要通过raw传递render调用的输出;否则,当它嵌入到视图中时,它将被转义.

所以,举个例子,你可以写这个,假设你的模板在/ app / views / foo中:

<div data-list="<%= raw render(:template => "foo/list.json",:locals => { :contents => @contents }) %>"></div>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读