Всегда активная ассоциация загрузки с сущностью

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

class Book
  has_many :chapters
end

class Chapters
  belongs_to :book
end

book = Book.find_by_title('Moby Dick')

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

Ответ 1

В вашей модели вы можете включить "default_scope".

Для Rails 4:

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

Для Rails 3:

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

Для Rails 2:

class Book
  has_many :chapters
  default_scope :include => :chapters
end