Joe*_*att 73 default-scope ruby-on-rails-4
在我的Rails应用程序中有一个默认范围,如下所示:
default_scope order: 'external_updated_at DESC'
Run Code Online (Sandbox Code Playgroud)
我现在升级到Rails 4,当然,我得到以下弃用警告"不推荐使用散列调用#scope或#default_scope.请使用包含范围的lambda.".我已经成功转换了我的其他范围,但我不知道default_scope的语法应该是什么.这不起作用:
default_scope, -> { order: 'external_updated_at' }
Run Code Online (Sandbox Code Playgroud)
Luk*_*uke 150
应该只是:
class Ticket < ActiveRecord::Base
default_scope -> { order(:external_updated_at) }
end
Run Code Online (Sandbox Code Playgroud)
default_scope接受一个块,lambda是scope()所必需的,因为有2个参数,name和block:
class Shirt < ActiveRecord::Base
scope :red, -> { where(color: 'red') }
end
Run Code Online (Sandbox Code Playgroud)
小智 21
这对我有用:
default_scope { order(:created_at => :desc) }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
50996 次 |
最近记录: |