1

我一直在按照本指南http://m.onkey.org/active-record-query-interface将命名范围升级到范围。我在我正在使用的代码中遇到的一件事是我在任何示例中都没有看到的是如何处理

named_scope :all, <ect>

我见过的最接近的例子是在 m.onkey.org 指南中

named_scope :red, :conditions => { :colour => 'red' }


scope :red, :conditions => { :colour => 'red' }

那么同样的想法是否适用,制作我的新代码

scope :all, <ect> 

还是我错过了什么?

4

1 回答 1

1

范围.all是保留的,因为 ActiveRecord 允许您使用相同的方法检索所有条目:

User.all #=> returns ALL the users existing in the DB

您应该将范围重命名为其他名称。

此外,您不必精确conditions关键字。这是我在项目中使用的部分代码:

scope :ordered, order(:name)
scope :with_color, lambda{ |color| where( color: color.try(:to_s) ) }
# this lambda scope is usable by: 
# Model.with_color(:red)
于 2013-05-22T15:20:56.580 回答