如何在 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 次
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 次