2

在我的应用程序中,我有 3 个模型:Item、Category 和 Categorization 定义如下:

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)

不会向我返回与该类别关联的项目。我在这里想念什么?

4

2 回答 2

0

尝试这个:

Category.where(parent_id: id).joins(:items)
于 2013-04-01T11:27:50.540 回答
-1

尝试这个:

Category.where(:parent_id => id).collect(&:items)

它将返回与where子句匹配的所有类别的项目。

于 2013-04-01T12:16:32.290 回答