2

アソシエーションのメソッド内からproxy_associationオブジェクトにアクセスする方法はありますか?

例:

class User < ActiveRecord:Base
  has_many :accounts
end

class Account < ActiveRecord:Base
  belongs_to :user

  def some_function
    # Here I want to access the same user object the association was called on
    # (that holds all already defined global variables), not a newly created object
    # through self.user (where all global variables are reset).

    proxy_association.owner
  end
end

アソシエーションが呼び出されたオブジェクトに、そのアソシエーション内からアクセスするにはどうすればよいですか?残念ながら、self.user以前に設定されたすべての変数がデフォルトに戻った新しいオブジェクトを返します。

4

1 に答える 1

5

:inverse_of関連付けのオプションを使用しますhas_many。これにより、関連付けを使用するときにメモリ内の 2 つのモデルが接続されます。

class User < ActiveRecord:Base
  has_many :accounts, inverse_of: :user
end

ソース: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many

于 2013-02-05T17:59:45.017 に答える