从关联方法中访问Rails proxy_association.owner

时间:2013-02-05 17:23:46

标签: ruby-on-rails ruby-on-rails-3 associations rails-activerecord

有没有办法从关联的方法中访问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返回一个新对象,其中所有先前设置的变量都恢复为默认值。

1 个答案:

答案 0 :(得分:4)

使用:inverse_of关联中的has_many选项。这将在使用关联时将两个模型连接到内存中。

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

来源: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many