3

次のモデルのRails2.3アプリがあります。

class Message << AR::Base
  has_many :message_copies
end


class MessageCopy << AR::Base
  belongs_to :message
end

MessageCopyを照会するときは常に、親メッセージの属性を参照する必要があります。したがって、dbクエリの数を減らすために、常に(:include =>:messageを介して)プリロードすることになります。

これまでのところ、私はこれを思いついた:

named_scope :with_parent_msg, :include => :message

これにより、これを簡単に行うことができます。

@user.message_copies.with_parent_msg

これを行うためのより良い方法はありますか?だから私はいつもwith_parent_msgを呼び出す必要はありませんか?

どんな提案にもオープン。ありがとう!

4

1 に答える 1

4

このためにdefault_scopeを定義できます

class MessageCopy << AR::Base
  belongs_to :message
  default_scope include(:message)
end
于 2011-02-19T00:03:49.237 に答える