Всегда стремимся связать нагрузку с сущностью - PullRequest
14 голосов
/ 19 января 2011

Можно ли всегда стремиться загрузить ассоциацию, когда объект загружен. Например

class Book
  has_many :chapters
end

class Chapters
  belongs_to :book
end

book = Book.find_by_title('Moby Dick')

Я знаю, что вы можете загрузить в вызове, чтобы найти, т.е. book = Book.find_by_title( 'Moby Dick', :include => :chapters) но в этом случае я знаю, что каждый раз, когда я нахожу книгу, я всегда хочу, чтобы главы загружались без необходимости запоминать параметр :include =>.

1 Ответ

27 голосов
/ 19 января 2011

Вы можете включить «default_scope» в вашу модель.

Для рельсов 4:

class Book
  has_many :chapters
  default_scope { includes(:chapters) }
end

Для рельсов 3:

class Book
  has_many :chapters
  default_scope includes(:chapters)
end

Для рельсов 2:

class Book
  has_many :chapters
  default_scope :include => :chapters
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...