1

私がやろうとしていること - 私はProfileそれぞれが多くのを持っている多くの を持っていUserます。デフォルトのプロファイルがあります。私がやりたいことは、削除されたプロファイルからデフォルトのプロファイルにユーザーを関連付けるためにプロファイルを削除することです。次のようなことを行います:

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

プロファイルの関連付けのために 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
于 2013-07-22T10:32:03.537 に答える