Ruby Scopes

Model Scopes它可以将常用的查询条件放在Model中,方便在Controller中重用,让程式变得干净易读,更厉害的是可以串接使用。


scope实例:

1
2
3
4
class  WebSite < ActiveRecord::Base
   scope  :valid , where( :status  =>  1 )
   scope  :for_snatch , valid.cts.order( "id" )
end


scope传参数实例:

1
2
3
4
5
class  Event < ActiveRecord::Base
   scope  :recent , lambda{ |date| where([ "created_at > ? " , date ]) }
   #或scope :recent, Proc.new{ |t| where(["created_at > ? ", t ]) }
end
Event.recent(  Time .now -  7 .days )


推荐上述这种带有参数的Scope ,改成如下的类别方法,可以比较明确看清楚参数是什么,特别是你想给预设值的时候

1
2
3
4
5
6
class  Event < ActiveRecord::Base
   def  self .recent(t= Time .now)
     where([ "created_at > ? " , t ])
   end
end
Event.recent(  Time .now -  7 .days )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值