如何始终包含急切加载的模型

时间:2012-12-13 10:52:35

标签: ruby-on-rails-3 activerecord eager-loading

我使用bullet gem告诉我N + 1个查询。

我想避免偶尔添加include。

我有comment模型属于user模型

有没有办法告诉模型任何时候访问评论模型以包含用户? (而不是每次都做Comment.include(:user)

2 个答案:

答案 0 :(得分:8)

您可以使用default_scope

class Comment < ActiveRecord::Base
  default_scope includes(:user)
end

Comment.first # => the same as Comment.includes(:user).first

答案 1 :(得分:1)

你应该做

class Comment < ActiveRecord::Base
  default_scope { includes(:user) }
end