我正在尝试在Rails 4中创建一个带有Subcategories的模型用于学校课程:
有3种型号: - 类别 - 话题 - 等级
类别例如:科学,语言,考试准备,不会超过15~20。 例如:数学,物理,英语,西班牙语,不会超过30~50。 例如:高中,研究生学习,不会超过5~7。
第一种方法:
创建3个单独的模型并添加关系
Category has_many :topics
Level has_many :topics
Topic belongs_to :category
Topic belongs_to :level
第二种方法
创建2个表:类别和主题,类别与上面相同,主题在与嵌套子类别相同的表中保存级别。父主题是数学,儿科主题是数学 - 高中。
Category has_many :topics
Topic belongs_to :category
Topic has_many :subtopics (parent_id foreign key)
SubTopic belongs_to :parent_topic
第一种方法是我最初的想法,但处理这些情况的3种不同模型似乎很多。针对这种情况的任何建议?
答案 0 :(得分:0)
我认为最好的方法是逐步完成。从最高级别开始。
class Level
has_many :categories
has_many :topics,:through=>:categories
end
class Category
belongs_to :level
has_many :topics
end
class Topic
belongs_to :Category
end