Jef*_*eff 4 activerecord has-many ruby-on-rails-3
ActiveRecord proxy_owner现已弃用,此处的解释非常模糊,如何更改它,所以我不知道如何使用它我的情况:http: //apidock.com/rails/ActiveRecord/Associations/AssociationProxy
这是我正在尝试做的事情:
class Library < ActiveRecord::Base
has_many :books do
def some_method
proxy_owner.author
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我发出警告,不推荐使用proxy_owner:
DEPRECATION WARNING: Calling record.books.proxy_owner is deprecated. Please use record.association(:books).owner instead.
Run Code Online (Sandbox Code Playgroud)
我可以用以下代码替换proxy_owner.author:
@associaton.owner.author
Run Code Online (Sandbox Code Playgroud)
这有效; 然而,这似乎很危险.我在这里错过了什么吗?
Dav*_*lan 18
我认为发送:owner给它更安全proxy_association:
class Library < ActiveRecord::Base
has_many :books do
def some_method
proxy_association.owner.author
end
end
end
Run Code Online (Sandbox Code Playgroud)
使用的proxy_association是现在中提到的文档:
但是,在实际的扩展代码中,您将无法访问上述记录(record.association(:items).owner).在这种情况下,您可以访问proxy_association.例如,record.association(:items)和record.items.proxy_association将返回相同的对象,允许您在关联扩展中进行类似proxy_association.owner的调用.
| 归档时间: |
|
| 查看次数: |
2489 次 |
| 最近记录: |