Cam*_*ike 2 ruby-on-rails ruby-on-rails-3
看起来整个Rails 3.x中的关联扩展已经发生了很大的变化.
我需要访问代理所有者和代理目标(即has_many对象和belongs_to对象).
最近期的文件说,使用proxy_association.owner和proxy_association.target.但是,这会丢失一种方法.我发现了一些较旧的参考文献(现在找不到它们),说这样self.proxy_target可行.然而,这似乎只是间歇性地工作,并且在我的本地环境和生产之间不可靠(奇怪......我知道).
有没有人知道在哪里可以找到关于如何使用Rails 3.0.10从关联扩展中访问所有者和目标的更明确答案?
proxy_association是rails 3.1的新功能.rails 3.0.x(和2.x)等价于proxy_owner和proxy_target.但是proxy_target,如果已经加载了关联,则返回缓存关联的实例变量,即如果尚未加载关联,则返回[]收集关联.或者换句话说,给定
class Bar < ActiveRecord::Base
  has_many :foos do
    def target_test
      proxy_target
    end
  end
end
然后
bar = Bar.first
bar.foos.target_test #=> []
bar.foos.inspect
bar.foos.target_test #=> [#<Foo id: 1 ...>]
您可以在调用load_target之前通过调用强制加载目标proxy_target.这一切都设置我不知道为什么这很重要 - 如果你打电话给self它的东西将转发给你的目标
| 归档时间: | 
 | 
| 查看次数: | 1177 次 | 
| 最近记录: |