Rails 3.2 で :delegate メソッドを使用して、オブジェクトの関連付けのメソッドを取得/設定しています。委任されたメソッドを呼び出していない場合でも、これは常に関連付けをロードするようです。
たとえば、私が持っている場合:
class Post < ActiveRecord::Base
delegate :name, :to => :author, :prefix => true
end
私がそうPost.all.limit(10)
すると、アクセスしているかどうかに関係なく、ActiveRecord はそれらの各投稿の作成者も読み込みます@post.author_name
。
委任された関連付けを遅延してロードする方法はありますか? それとも、アソシエーションを遅延ロードするカスタム ラッパー メソッドを作成したほうがよいでしょうか?