whi*_*hat 0 ruby-on-rails has-many eager-loading
class A < ActiveRecord::Base
has_many :Bs
has_many :Cs
...
end
Run Code Online (Sandbox Code Playgroud)
我想在A上进行查询时加载所有的B和C,比如A.where(name: :abc)使用单个查询,而不是多次调用数据库.
我不希望为.includes我运行的每个查询指定.如何在模型中指定预先加载?
我看了许多类似的问题并尝试这样做,但它不起作用:
default_scope :include => [:Bs, :Cs]
Run Code Online (Sandbox Code Playgroud)
default_scope { includes(:Bs, :Cs) } 应该这样做.
据我所知,范围采用块作为参数而不是选项的哈希.我刚刚在rails控制台中尝试过它,似乎工作正常.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |