36
A
回答
66
Rails的支持單表繼承。
從AR docs:
的Active Record允許繼承由 在 列存儲類的名稱,默認情況下被命名爲「型」 (可以改變通過覆蓋 Base.inheritance_column) 。這意味着 繼承尋找的是這樣的:
class Company < ActiveRecord::Base; end class Firm < Company; end class Client < Company; end class PriorityClient < Client; end
當你這樣做Firm.create(:名稱=> 「37signals公司」),該記錄將被保存 在公司表型 =「事務所」。然後,您可以使用Company.find(:first,「name ='37signals'」)再次獲取該行並返回一個Firm對象。
如果您的表中沒有定義類型列 ,將不會觸發單表 繼承。在 這種情況下,它會工作就像正常 子與 沒有特殊的魔力他們或 區分重裝正確的類型與發現。
一個不錯的教程是在這裏:http://juixe.com/techknow/index.php/2006/06/03/rails-single-table-inheritance/
15
型號:
class Animal < ActiveRecord::Base; end
class Dog < Animal; end
class Cat < Animal; end
遷移:
class CreateAnimals < ActiveRecord::Migration
def self.up
create_table :animals do |t|
# Other attributes...
t.string :type
end
end
def self.down
drop_table :animals
end
end
6
ActiveRecord的支持映射繼承層次到一個表(Single-table inheritance表將有一列type
,它存儲了一個名字ctual類,用於選擇其他類特定的列。
它可以實現多表繼承映射,如圖所示here,但這種特別的方式是不可移植的,據我所知。
相關問題
- 1. 在軌道上實現了Ruby on Rails的Active Record繼承
- 2. 如何在Ruby on Rails 3中使用Active Record搜索文本?
- 3. 與繼承的Active Record
- 4. 如何在Rails Active Record中實現AND子句?
- 5. 如何實現Object.try!在Ruby on Rails中?
- 6. Ruby on Rails中的類繼承
- 7. Ruby on Rails中的模型繼承3
- 8. Ruby on Rails的Active Record中的belongs_to協會4
- 9. Ruby on Rails和Active Record關聯中的多級別類別
- 10. 如何在Ruby on Rails環境中繼承Java類
- 11. Rails Active Record TimeZones
- 12. Ruby on Rails的Active Record的查詢接口
- 13. Ruby On Rails使用Active Record關聯對象
- 14. 使用Ruby on Rails建模書籍Active Record
- 15. 如何動態更改Ruby on Rails中所有模型的Active Record數據庫?
- 16. Ruby on Rails:如何在沒有Active Record的情況下驗證模型?
- 17. 單表繼承Ruby on Rails的
- 18. Ruby on Rails的:局部視圖繼承
- 19. Ruby on Rails - 繼承 - 用戶帳戶
- 20. Ruby Active Record關係
- 21. Rails 5 Active Record has_and_belongs_to_many
- 22. Rails Active Record回撥
- 23. 在Ruby on Rails中實現Bootstrap BlueImp Gallery
- 24. Ruby on Rails的HTTPS實現
- 25. Ruby on rails parent nav active
- 26. Active Record Validation Rails 4
- 27. Ruby on Rails - 如何知道同一個對象在使用Active Record的Array中出現多少次?
- 28. Active Record Rails查詢
- 29. attr_accessible in rails Active Record
- 30. Ruby on Rails抱怨內置於Active Record中的方法不存在。什麼?
你可能要接受一個答案 – 2013-05-17 04:27:47