Preventing N+1 queries in Rails

前端 未结 2 1983
无人共我
无人共我 2020-12-11 09:57

I\'ve seen a few examples of passing an :include hash value when calling one of ActiveRecord\'s find methods in Rails. However, I haven\'t seen any

相关标签:
2条回答
  • 2020-12-11 10:03

    You can't use relations as Class methods. It is instance methods. You can call

    @user.favorites
    

    Check out this screencast about Eager Loading

    http://railscasts.com/episodes/22-eager-loading

    It will be

     User.find(:all, :include => :favorites)
    

    or for Rails 3.x

     User.includes(:favorites)
    
    0 讨论(0)
  • 2020-12-11 10:13

    You can add :include to your model's associations to eager load the second-order associations when the object is loaded.

    http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many

    0 讨论(0)
提交回复
热议问题