Rails: любой способ предварительно загрузить (включить) родительскую ассоциацию - PullRequest
3 голосов
/ 19 февраля 2011

У меня есть приложение Rails 2.3 со следующими моделями.

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


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

Всякий раз, когда я запрашиваю MessageCopy, мне всегда нужно ссылаться на атрибуты родительского сообщения.Таким образом, я всегда заканчиваю предварительную загрузку (через: include =>: message), чтобы уменьшить количество запросов к базе данных.

Пока я придумал это:легко сделать это:

@user.message_copies.with_parent_msg

Есть ли лучший способ сделать это?Так что мне не всегда нужно звонить with_parent_msg?

Открыт для любых предложений.Спасибо!

1 Ответ

3 голосов
/ 19 февраля 2011

Вы можете определить default_scope для этого

class MessageCopy << AR::Base
  belongs_to :message
  default_scope include(:message)
end
...