STI
你需要use an STI爲categories
和verses
- 基本上是基於其他任何模型,可以轉移到了性病,防止溼顯影:
配置
#config/application.rb
config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
這將允許你保持你的模型目錄清潔 - 讓你的繼承模式在一個單獨的文件夾中,這樣你就不會在將來感到困惑
-
模式
#app/models/verses/trait.rb
Class Trait < Verse
belongs_to :category
end
#app/models/verses/message.rb
Class Message < Verse
belongs_to :category
end
#app/models/verse.rb
Class Verse < ActiveRecord::Base
...
end
這將允許你打電話喜歡的Message.all
,這實際上會檢索所有Verse
記錄與type
Message
的:
#verses table
id | type | category_id | line_1 | line_2 | line_3 | active | sex | created_at | updated_at
個
-
分類
你爲什麼不只是使用單一Category
模式,用3個不同類別內:
#app/models/verses/trait.rb
Class Trait < Verse
belongs_to :category
end
#app/models/category.rb
Class Category < ActiveRecord::Base
has_many :traits
end