在我的应用程序中,我有3个模型:项目,类别和分类定义如下:
class Item < ActiveRecord::Base
attr_accessible :name, :description
has_many :categorizations
has_many :categories, :through => :categorizations
end
class Category < ActiveRecord::Base
attr_accessible :name, :description, :parent, :children, :items, :parent_id
has_many :children, :class_name => "Category", :foreign_key => "parent_id", :dependent => :nullify
belongs_to :parent, :class_name => "Category"
has_many :categorizations
has_many :items, :through => :categorizations
end
class Categorization < ActiveRecord::Base
attr_accessible :category, :item
belongs_to :category
belongs_to :item
end
然而,这样做:
Category.where(:parent_id => self.id).includes(:items)
不会返回与该类别相关联的项目。我在这里缺少什么?
答案 0 :(得分:0)
试试这个:
Category.where(parent_id: id).joins(:items)
答案 1 :(得分:-1)
试试这个:
Category.where(:parent_id => id).collect(&:items)
它将返回与where
子句匹配的所有类别的项目。