无法使用jbuilder呈现多个部分

时间:2014-01-29 13:51:21

标签: ruby-on-rails json render jbuilder

我创建了一个控制器功能来获取三种不同模型的所有元素。 就这么简单:

def get_all_data
  @events = Event.all
  @activities = Activity.all
  @places = Place.all
end

然后在get_all_data.json中:

json.partial! 'event', collection: @events
json.partial! 'activity', collection: @activities
json.partial! 'place', collection: @places

问题是它只渲染一个部分,最后一个。我错过了什么吗?这可以用更好的方式完成吗?

1 个答案:

答案 0 :(得分:4)

尝试将它们分别放在JSON结构的成员中:

json.event do
  json.partial! 'event', collection: @events
end
json.activity do
  json.partial! 'activity', collection: @activities
end
json.place do
  json.partial! 'place', collection: @places
end

我觉得这应该有用。