我正在使用 ruby 1.9.3p125 和 rails 3.2.8 并将 rabl 添加到我的 gemfile 中,所以它应该是最新的。
我在一个简单的情况下使用了 RABL,我希望将 json 直接发送给请求者。现在我有一种情况,我想使用 rabl 生成 json,然后用 mustache 渲染它。
在此之前,我一直在使用 as_json (在模型中被覆盖)来生成 json,因此:
<%= render 'scrollable', :mustache=>{photos: @page.photos.as_json} %>
_scrollable.html.mustache 中有一个合适的模板,我仍然希望使用它。
我已经为这些照片编写了 RABL 模板:
# _photo.json.rabl
object @photo do
attributes :src, :name, :height
attributes :drawing
node do |p|
{ :label => p.caption || p.name }
end
child :components do
attributes :name, :height
end
end
和
# _photos.json.rabl
collection @photos do
extend 'photos/photo'
end
如何调用这些模板?
<%= render 'scrollable', :mustache =>render(@page.photos, template: 'photos', formats: '[json]', handlers: ['rabl']) %>
返回
Missing partial ..../photos/photo with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee, :mustache, :rabl]}
有趣的是,它似乎已经失去了我想要格式的事实:json