ani*_*hri 2 activerecord named-scope ruby-on-rails
我无法在任何地方找到答案,而且我今天没有留下脑力来想办法自己确认一下.
我有这样的命名范围......
named_scope :fresh, :conditions => ['updated_at > ?', 4.hours.ago]
Run Code Online (Sandbox Code Playgroud)
我不知道这是否会按照我想要的方式运作.我的一部分认为4.hours.ago将在加载类文件时解析,而另一部分认为4.hours.ago将在使用时展开.
谢谢您的帮助!
你需要使用lambda:
named_scope :fresh, lambda { { :conditions => ['updated_at > ?', 4.hours.ago] } }
Run Code Online (Sandbox Code Playgroud)
您需要使用lambda的原因是因为应用程序启动时会加载范围.因此,范围中的时间将反映范围的加载时间.所以它似乎可行,但随着时间的推移会变得越来越不正确.通过插入lambda,您可以告诉每次调用范围时都会执行条件哈希处理.因此,时间呼叫不会过时.
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |