Rails:委托方法总是加载关联吗?

时间:2013-05-29 10:32:54

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

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

例如,如果我有:

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

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

有没有办法懒洋洋地加载委托关联?或者我最好编写自定义包装器方法,它会懒惰地加载关联?

1 个答案:

答案 0 :(得分:0)

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

在任何情况下,我都不喜欢delegate使用prefix,这似乎有些奇怪。您不再实际委派方法,您只是以难以阅读和解析的方式定义了一个新方法。我只是按照你的建议编写一个包装器方法。