我有一個用戶模型。 用戶可以擁有3個角色中的1個角色:角色1,角色2,角色3。這由用戶模型中的「角色」列表示。 每個角色都有唯一的配置文件。 role1_profile,role2_profile,role3_profile。每個* _profile都是一個模型。Rails中的可選或條件模型關聯
如何在Rails中表示此可選關聯?
我已經試過了兩種不同的方式:
class User < ActiveRecord::Base
#FIRST WAY
if current_user.role == 'role1' then has_one :role1_profile end
#SECOND WAY
has_one :role1_profile, :conditions => ['user.role = ?', 'role1']
end
但是,這並不工作。什麼是正確的方法來做到這一點?
+1因爲我懶得輸入代碼。 –
謝謝!我認爲你的解決方案是完美的。在Rails中總有一種方法,但是當你不知道方式時,你往往以奇怪的方式實現解決方案。 – hrdwdmrbl
@jackquack我認爲你的方法根本不可思議。恰恰相反,這是非常合乎邏輯的。而且它可能會指出ActiveRecord可以改進/擴展的地方。無論如何,我很高興你有事情的工作。 –