我在Rails應用程序上使用了兩個模型,Article和Profile。我希望他們有不同的類別。我應該創建兩個不同的類別模型嗎? article_category和profile_category?如果我這樣做,會有很多冗餘代碼。我應該創建兩個不同的'類別'模型集嗎? Ruby on Rails
4
A
回答
2
問題是,這兩個類別的功能是否會一樣?
如果他們這樣做,那麼我會使用一種類型的模型,即使不同的名稱會被歸因於不同的名稱。
訣竅是DRY
或「不要重複自己」。因此,如果有任何事情被寫兩次,你可以絕對重構成一個較小的代碼。
2
如果模型是相同的,那麼你應該使用多態關係。看到我的迴應在這裏:Rails -- How to setup model that can belong to either of 3 different models
如果不同的類別模型將需要額外的邏輯,那麼我會使用單表繼承爲此。您將擁有一個父類別類,並且ArticleCategory和ProfileCategory將從此繼承。基本上所有你需要做的就是添加一個類型字段到類別和兩個額外的類。這將消除多餘的代碼,並允許您將任何模型特定的代碼分離到適當的類中。讓我知道你是否需要額外的方向。
相關問題
- 1. Ruby on Rails的 - 創建相同型號
- 2. Ruby on Rails 3:has_and_belongs_to_many兩個不同的模型
- 3. Ruby on Rails:不同實現的模型
- 4. Ruby on Rails - 鏈接兩個模型
- 5. Ruby on Rails,從另一個模型創建一個記錄
- 6. Ruby on rails創建儘可能多的一個模型
- 7. 我該如何組織我的Ruby on Rails模型?
- 8. 從評論控制器ruby on rails創建兩個模型的註釋
- 9. Ruby on Rails的創建模式
- 10. 我應該爲同一類型的關係創建不同的連接表嗎?
- 11. 我應該在Redis的Rails中創建一個新類嗎?
- 12. 我應該爲每個類別創建單獨的表嗎?
- 13. Ruby on Rails的模型
- 14. Ruby on Rails的模型
- 15. Ruby on Rails:使用多個數據源創建模型
- 16. Ruby on Rails:正確地創建與多個模型有關的模型實例
- 17. 我應該爲每個模型創建一個接口嗎?
- 18. Ruby On Rails 3,通過兩個值在不同模型中的組合排序
- 19. 我應該在FluentValidation中爲集合創建一個新的類型嗎?
- 20. 如何在兩個模型之間創建has_many關係,其中有幾個模型? (Ruby on Rails的ActiveRecord的)
- 21. Ruby on Rails - 使用:包含在不同模式的模型中
- 22. Ruby on Rails模型關聯
- 23. Ruby on Rails模型關係
- 24. jQuery跨Ruby on Rails模型
- 25. Ruby on Rails - 模型驗證
- 26. Ruby on Rails模型重用
- 27. Ruby on Rails關係模型
- 28. 使用Ruby on Rails模型
- 29. 比較模型Ruby on Rails
- 30. Ruby on Rails生成模型
好吧,我想我會在類別模型中使用布爾值,profile_cat?和article_cat ?. – kelp 2010-09-07 01:36:40
他們中的任何一個會共享相同的類別名稱嗎? – Trip 2010-09-07 01:58:17
不,他們不會共享相同的類別名稱。 – kelp 2010-09-07 04:50:01