始终渴望加载与实体的关联

时间:2011-01-19 02:09:16

标签: ruby activerecord

在加载实体时是否可以始终急切加载关联。例如

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 个答案:

答案 0 :(得分:25)

您可以在模型中包含“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