我正在关注#322 RailsCasts,在最后一部分中,他评论了一种将 json 嵌入 html 的方法
<div id="articles" data-articles="<%= render(template: "articles/index.json.rabl") %>" >
在我的项目中,我有一个 rabl 模板:app/views/places/show.json.rabl
object @place
attributes :id, :name, :desc, :address
node(:type) { |place| place.type_place.name }
child :photos do
attributes :id, :desc
node(:url) { |photo| photo.image.url(:square) }
end
如果我渲染 /places/21.json 它显示:
{"id":21,"name":"foo","desc":"bar","address":"some address","type":"baz",
"photos":[{"id":26,"desc":"foofoo","url":"/uploads/photo/image/26/square_conmemorativo-1920x1080.jpg"}]}
很好,但如果我尝试将 json 数据嵌入到 html 中,我会这样做:
<article id="show_place" data-place="<%= render(template: "places/#{@place.id}.json.rabl") %>" >
错误日志
缺少带有 {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee, :rabl]} 的模板 places/21.json。搜索:*“/home/ed/projects/rails_projects/final_u/app/views”
我究竟做错了什么?
更新
我刚刚找到了解决方案
<article id="show_place" data-place="<%= render(template: "places/show.json.rabl") %>" >
它有效,但我不知道为什么..这里我还有另一个问题
有一种方法可以将单个对象传递给 render(template: "") ??
提前谢谢....对不起我的英语