我想创建一个具有第n级子类别的类别模型。我可以创建最多2个级别,但不能超越它。
class Category < ActiveRecord::Base
has_many :subcategories, :class_name => "Category", :foreign_key => "parent_id", :dependent => :destroy
belongs_to :parent, :class_name => "Category"
end
我不想使用任何宝石。
答案 0 :(得分:0)
#category.rb
has_many :sub_category_ones
has_many :sub_category_twos, through: :sub_category_ones
has_many :sub_category_threes, through: :sub_category_twos
has_many :sub_category_fours, through: :sub_category_threes
#sub_category_one.rb
belongs_to :category
has_many :sub_category_twos
#sub_category_two.rb
belongs_to :sub_category_one
has_many :sub_category_threes
#sub_category_three.rb
belongs_to :sub_category_two
has_many :sub_category_fours
#sub_category_fours
belongs_to :sub_category_three
然后你可以说:
category.sub_category_fours # I think! :)
如果它有效并且你构建了一个accepts_nested_attributes_for
相应的系统,请你发给我强大的参数,所以你可以用@ category.save保存它们!