在Rails中合并2个对象

时间:2016-09-11 01:13:28

标签: ruby-on-rails

我有items_controller.rbitem_galleries_controller.rb

item_galleries需要item_id。一切都很好。

由于我正在使用react,我创建了一个presenter对象,它将适当的数据发送到我的redux商店。我的问题是我无法输出相关的item_galleries

这是items_controller.rb中的索引方法:

  def index
    @items = Item.all
    @presenter = {
      :items => {
        :records => @items,
        :filtered => @items,
        :suggested => []
      }
    }
  end

我能够让它工作并将相应的数据输出到json,但不幸的是jbuilder与此@presenter对象不同。

json.images items.item_galleries do |p|
    json.img url_for(p.image_url)
end 

关于如何在索引方法中复制上述内容并将其输出到@items

旁边的任何想法

1 个答案:

答案 0 :(得分:1)

  

我的问题是我无法输出关联的item_galleries

如果Item has_many :item_galleriesitem_galleryitem_id:item_galleries表上的列,那么......

#app/controllers/items_controller.rb
def index
  @items = Item.all
  ...
  @galleries = ItemGallery.where(item_id: @items.map(&:id))
end

#index.json.jbuilder
json.images @galleries do |gallery|
  json.img url_for(gallery.image_url)
end