什么时候应该使用命名作用域,什么时候应该使用类方法



哪个更好?命名作用域还是类方法?用例是用户在UI中选择一个列表框,并根据所选的项对其下面的表进行排序。这个功能贯穿整个应用程序,适用于许多模型。

最重要的是你要做感觉正确的事情,并坚持下去。如果某件事用一种方法似乎会更好,那就用一种方法。

从Rails 3开始,命名作用域和类方法可以几乎完全相同。然而,当我决定选择一个或另一个时,我倾向于遵循的唯一"规则":

  • 当不需要参数时使用命名作用域
  • 当需要参数时使用类方法

当我计划将它们链接在一起时,我也倾向于使用命名作用域,因为它们往往很短,逻辑最少。

最新更新