1

我正在尝试做的 - 我有很多Profiles 每个都有很多Users。我有一个默认配置文件。我想要做的是在配置文件的删除上将用户从已删除的配置文件关联到默认配置文件。做类似的事情:

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。示例代码已缩短,仅包含基本信息。

4

1 回答 1

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
于 2013-07-22T10:32:03.537 回答