首页 > 解决方案 > 在 Rails 5 模型的 default_scope 中使用包含方法,而不是在控制器中

问题描述

我知道通常最好避免在 Rails 模型中使用默认范围,但是,由于总是需要一些关联,而不是.includes每次都在控制器中为模型使用方法,我更喜欢将其包含在默认范围中模型本身。

此更改是否有任何主要缺点(移动.includes到模型default_scope而不是控制器)?

例如:

而不是在控制器中:

Brand.includes(:car_model)

我想includes在品牌模型本身中有这个:

default_scope { includes(:car_model) }

笔记:

据我所见,子弹现在说避免急切负载以避免这种情况includes,而不是我之前在同一模型和包含关联上使用的急切负载。

标签: ruby-on-railsactiverecordeager-loadingdefault-scope

解决方案


推荐阅读