我想用Active Record在rails中實現繼承。我有3個型號:在軌道上實現了Ruby on Rails的Active Record繼承
- 所有者
- Realowner
- Legalowner
Realowner有2個屬性:名字和姓氏
和legalowner有2個屬性:移動和legalnumber
這兩個模型繼承自所有者。我嘗試在軌道中使用Active Record進行建模。對於這一點,我創建Owner
與type
屬性:
rails g model owner type:string
,創造realowner
和legalowner
與scaffold
:
rails g scaffold realowner name:string lastname:sting
rails g scaffold legalowner mobile:string legalnumber:string
Owner.rb
:
class Owner < ActiveRecord::Base
end
Realowner.rb
:
class Realowner < Owner
end
Legalowner.rb
:
class Legalowner < Owner
end
我在Rails項目實現這一點,但是當我要創建新的realowner
或legalowner
,我得到以下錯誤:
undefined method `name' for #<Realowner:0x00000005feff88>
undefined method `lastname' for #<Realowner:0x00000005feff88>
undefined method `mobile' for #<Legalowner:0x00000005feff88>
undefined method `legalnumber' for #<Legalowner:0x00000005feff88>
我解決由加載這個問題這個屬性在Owner
模型中。當我創造新的Realowner
,在所有者數據庫和其他領域的完整type, name and last name
是空的,當我創造新的Legalowner
,在擁有者數據庫和其他領域的完整type, mobile and legalnumber
是空也和Legalowner
和Realowner
在數據庫表都爲空。
我該如何在rails中使用Active Record實現這種繼承?我想在數據庫的特定表中添加類的屬性。我怎樣才能做到這一點?任何想法?
https://stackoverflow.com/search?q=active+record+inheritance和https://stackoverflow.com/questions/2148853/active-record-inheritence – mhutter 2014-10-02 10:17:04
什麼是你實際上是由您的設計繼承?這兩個人有不同的數據,因此在他們之間分享任何行爲都會很棘手。 – 2014-10-02 11:38:57