Ruby on rails 在Rails 4中实现有很多子类别
我想为我的产品实现子类别 到目前为止,我有:Ruby on rails 在Rails 4中实现有很多子类别,ruby-on-rails,ruby-on-rails-4,associations,Ruby On Rails,Ruby On Rails 4,Associations,我想为我的产品实现子类别 到目前为止,我有: class Category < ActiveRecord::Base has_many :subcategories, dependent: :destroy end class Subcategory < ActiveRecord::Base has_one :category has_many :products end class Product < ActiveRecord::Base belongs_
class Category < ActiveRecord::Base
has_many :subcategories, dependent: :destroy
end
class Subcategory < ActiveRecord::Base
has_one :category
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :subcategory
end
类别
它可以完全正常工作,但是我想更进一步,通过这些模型之间的关联实现一个has_many,这样每个产品都将通过一个子类别属于一个类别(这样我就可以检查某个类别中总共有多少产品,等等)。但我似乎做不好。这有意义吗?还是我应该继续使用我上面的第一个版本?要检查某个类别中有多少产品,是否添加:
class Category < ActiveRecord::Base
has_many :products, through: :subcategories
end
另一种简写方法是使用委托
:
class Product < ActiveRecord::Base
delegate :category, to: :subcategory, prefix: false
end
类产品
在我看来,子类别应该是属于:category
而不是有一个:category
。然后查看如何执行下一步。我必须在子类别模型中指定什么类型的关系?您可以在示例中保持不变,或者按照@Coenwulf的建议,将has\u one:category
更改为beliens\u to:category
class Product < ActiveRecord::Base
delegate :category, to: :subcategory, prefix: false
end