如何在 jbuilder 中渲染一个集合?

How to render a collection in 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

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

json.partial! :restaurant, collection: @restaurants

我能找到的最短的:

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

...但并不是真的像渲染视图部分的集合(在日志中它仍然显示为多个渲染),我不喜欢在一行代码中使用单词 'restaurant' 5 次