2013-07-22 113 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