如果我有一個用戶,我想使不同類型的用戶,說只是普通用戶,只有一個電子郵件,誰擁有一個網站領域的用戶,我將如何讓用戶繼承一切從用戶只是一個補充領域?Rails的型號繼承
回答
您將需要創建一個表的所有字段,以及指定類型列。 即
create_table :users do |t|
t.string :email
t.string :website
t.string :type
end
然後你就可以擁有類,如
Class User < ActiveRecord::Base
Class Subscriber < User
訂戶將繼承一切從用戶模式。類型列在那裏,以便您可以區分不同的模型。例如使用
Subscriber.all
只會得到用戶,在這裏,如果你沒有使用「類型」一欄也將找到的用戶太多。
你想single table inheritance,在由Alex賴斯納的鏈接描述。 STI使用單個表格來表示從基本模型繼承的多個模型。在Rails世界中,數據庫模式有一個列,它指定了行所表示的模型的類型。添加在數據庫遷移名爲type
列有Rails的推斷表使用STI,但如果你指定在數據模型的名稱(見class method 'inheritance_column')列可以是任意的名字。請注意,這使得type
成爲保留字。
這已經被破壞。我想正確的鏈接是[http://www.alexreisner.com/code/single-table-inheritance-in-rails](http://www.alexreisner.com/code/single-table-inheritance-in-rails ) –
儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Luke
@Luke:只要「單表繼承」是答案,那不完全是鏈接。 –
- 1. Rails模型繼承?
- 2. Rails的:模型繼承
- 3. Rails活動模型繼承
- 4. Rails 3.1沒有表繼承的模型繼承
- 5. Rails的嵌套屬性和型號繼承
- 6. 的Rails 3.2:validates_presence_of繼承的模型
- 7. Rails的條件類繼承模型
- 8. Rails模型繼承的形式
- 9. Ruby on Rails中的模型繼承3
- 10. 繼承和Rails
- 11. Rails的named_scope繼承?
- 12. Django的:型號繼承:FK和M2M
- 13. Rails模型不能繼承ActiveRecord :: Base
- 14. Rails模型:傳統模式:表繼承
- 15. Rails模型繼承和路由
- 16. Rails模型複雜繼承協會
- 17. 型號繼承沒有插件
- 18. 型號繼承和RSS框架
- 19. 是否tf.train.latest_checkpoint()繼承tf.train.import_meta_graph型號名稱()
- 20. Rails關聯+繼承
- 21. Rails繼承子類
- 22. C++繼承型
- 23. 原型繼承
- 24. 模型繼承
- 25. 類型繼承
- 26. 泛型類型的繼承
- 27. 類型繼承與表繼承
- 28. Rails的單表繼承
- 29. yml rails中的繼承?
- 30. Rails中的「繼承」數據
OP:這就是所謂的「單表繼承」或「STI」。所以谷歌,以獲得更多的信息,如果你需要它的工作原理。 – Pavling
在做了很多關於這個主題的搜索之後,有些人似乎更喜歡在模型之間的數據不同時使用多態關聯。這可以避免讓一個表有很多空字段。 我發現這個railscast有所幫助:http://railscasts.com/episodes/394-sti-and-polymorphic-associations。 – rogerkk
類型欄應該有什麼實際值? –