class Item < ActiveRecord::Base
belongs_to :account
belongs_to :category
end
class Category < ActiveRecord::Base
belongs_to :account
has_many :items
end
我想做以下事情:
@items = @account.items.where(...)
@categories = @items.categories.order(...)
@items.categories
应通过@items
关联获取belongs_to
的所有类别。我提出的最好的是:
@categories = @items.map{|item| item.category }
但是没有管理这个的余地吗?
答案 0 :(得分:0)
由于您希望通过项目来查看帐户中的类别,我认为您可以执行类似
的操作 has_many :categories, :through => :items
在您的Account
模型中,然后只需致电account.categories
另外,对于记录,你在那里做的map
会进行n + 1次查询(它应该类似于@categories = @items.includes(:category).map{...}