【问题标题】:Rails - set default association on delete of has_many modelRails - 在删除 has_many 模型时设置默认关联
【发布时间】:2013-07-22 10:20:15
【问题描述】:

我想要做的 - 我有很多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。示例代码已缩短,仅包含基本信息。

【问题讨论】:

    标签: ruby-on-rails activerecord callback associations


    【解决方案1】:

    您可以覆盖配置文件关联的 getter:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      相关资源
      最近更新 更多