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

Pau*_*der 14 ruby activerecord

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

class Book
  has_many :chapters
end

class Chapters
  belongs_to :book
end

book = Book.find_by_title('Moby Dick')
Run Code Online (Sandbox Code Playgroud)

我知道你可以在电话中急于加载找到ie.book = Book.find_by_title( 'Moby Dick', :include => :chapters)但在这种情况下,我知道每当我找到一本书时,我总是希望这些章节急切加载,而不需要记住:include =>参数.

Dyl*_*kow 27

您可以在模型中包含"default_scope".

对于Rails 4:

class Book
  has_many :chapters
  default_scope { includes(:chapters) }
end
Run Code Online (Sandbox Code Playgroud)

对于Rails 3:

class Book
  has_many :chapters
  default_scope includes(:chapters)
end
Run Code Online (Sandbox Code Playgroud)

对于Rails 2:

class Book
  has_many :chapters
  default_scope :include => :chapters
end
Run Code Online (Sandbox Code Playgroud)

  • 对于Rails 4:default_scope {includes(:chapters)} (10认同)