Rails 4模型类别和多个子类别

时间:2015-07-10 12:18:11

标签: ruby-on-rails ruby-on-rails-4

我正在尝试在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种不同模型似乎很多。针对这种情况的任何建议?

1 个答案:

答案 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