如何在jbuilder中呈现集合?

时间:2016-07-30 16:32:02

标签: ruby-on-rails json view jbuilder

Rails中有一种很棒的方法可以为视图模板渲染一组对象,它可以作为研究员使用:

<%= render @restaurants %>

它会自动寻找一个名为_restaurant.html.erb的部分,循环收集,将单个对象传递给部分,然后渲染它。这太棒了。

现在,我在jbuilder gem中寻找一种非常相似的方式。

_restaurant.json.jbuilder

json.(restaurant, :id, :name, :address, :latitude, :longitude)

现在,对于@restaurants,我如何以与Rails中的视图模板相同的方式使用此部分?目前,我采用以下方式渲染集合:

json.restaurants @restaurants do |restaurant|
  json.partial! restaurant
end

2 个答案:

答案 0 :(得分:3)

好的,所以我认为您正在寻找以下内容:

json.partial! :restaurant, collection: @restaurants

答案 1 :(得分:0)

我能找到的最短的

json.restaurants @restaurants, partial: 'restaurants/restaurant', as: :restaurant

...但是实际上并不太像渲染视图部分(在日志中仍然显示为多个渲染),我不喜欢在一行代码中使用“ restaurant”一词5次