1

我在 Rails 3.2 中使用 :delegate 方法来获取/设置对象关联的方法。这似乎总是加载关联,即使我没有调用委托方法。

例如,如果我有:

class Post < ActiveRecord::Base
   delegate :name, :to => :author, :prefix => true
end

如果我这样做Post.all.limit(10)ActiveRecord 也会为每个帖子加载作者,无论我是否曾经访问过@post.author_name.

有没有办法懒惰地加载委托关联?还是我最好编写自定义包装方法,这将延迟加载关联?

4

1 回答 1

0

他们不急于为我加载,这可能是您的代码中的其他内容吗?

无论如何,我从不喜欢使用delegatewith prefix,这似乎有点奇怪。您实际上不再是委派一个方法,而是以一种难以阅读和解析的方式定义了一个新方法。我只是按照您的建议编写一个包装器方法。

于 2013-05-29T16:47:59.297 回答