目录结构app--v1--orders --index.json.jbuilder
--show.json.jbuilder
--_order.json.jbuilder
--rooms --_room.json.jbuilder
--index.json.jbuilder
--user --_user.json.jbuilder
--places --autocomplete.json.jbuilder
jbuilder的json.partial!渲染局部页面的方法很智能由两种方法应用:
方法一:
例子1
在order文件夹的index.json.jbuilder中
json.data do
json.orders @orders do |order|
json.partial! order, {order: order, render_detail: false}
end
end
在_order.json.jbuilder中
json.user do
json.partial! order.user, render_detail: false
end
不用标明路径直接就可以找到user文件夹中的_user.json.jbuilder模板
例子2
在autocomplete.json.jbuilder中
if @search_rooms.present?
json.search_rooms @search_rooms do |room|
json.partial! room, render_detail: false
end
end
这里可以直接找到rooms文件夹中的_room.json.jbuilder模板进行渲染
方法二:
在rooms文件夹的index.json.jbuilder中
json.rooms @rooms do |room|
json.cache! [room, I18n.locale], expires_in: 24.hours do
json.partial! "rooms/room", locals: {render_detail: false, room: room}
end
end
则直接绝对路径找到rooms文件夹中的_room.json.jbuilder模板进行模板