更新named_scope:all用于新的ActiveRecord格式

时间:2013-05-22 14:52:36

标签: ruby-on-rails ruby-on-rails-3 activerecord formatting

我一直在按照本指南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> 
或者我错过了什么?

1 个答案:

答案 0 :(得分: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)