1
我有一個用戶模型,它屬於配置文件(belongs_to多態)。一個模型有兩個子類,但profile_type in 用戶始終對應於父模型。在rails中的繼承和多態關聯
User < ActiveRecord::Base
belongs_to :profile, :polymorphic => true
SomeProf < ActiveRecord::Base
has_one :user, :as => :profile
SomeDeepProf1 < SomeProf
SomeDeepProf2 < SomeProf
然後:
sdp1 = SomeDeepProf1.new
user = sdp1.create_user
user.profile_type
> 'SomeProf'
即使陳述在子類協會,profile_type仍然SomeProf。
爲什麼會發生這種情況?有什麼辦法profile_type匹配的子類,而不是父類?
是的馬塞爾,我注意到了。我的代碼使用profile_type來決定用戶的類型,並避免額外訪問數據庫。感謝您的解釋! – nanda 2010-02-12 15:42:36