2013-07-22 143 views
1

我想要做的 - 我有很多Profile s,其中每個有很多User s。我有一個默認的配置文件。我想要做的是在配置文件的刪除將用戶從已刪除的配置文件關聯到默認配置文件。做類似於:Rails - 在has_many模型刪除時設置默認關聯

class Profile 
    has_many :users, dependent: :set_default 
    def set_default 
    #set default value on destroy 
    end 
end 

class User 
    belongs_to :profile 
end 

我該怎麼做? PS:示例代碼縮短爲僅包含重要信息。

回答

1

您可以覆蓋你吸氣的關聯個人資料:

def profile 
    user.profile_id ? Profile.find(id) : user.default_profile 
end 

default_profile是你的方法,將返回默認配置文件。

您也可以使用alias_method

alias_method :original_profile, :profile 

def profile 
    original_profile || user.default_profile 
end