Flo*_*ock 0 ruby-on-rails rails-activerecord
我正在尝试定义一个scope包含所有尚未过期的项目 - 或者根本没有过期日期的项目(nil).
这就是我所拥有的,但它不会返回我想要的东西:
scope :active, -> { where(["expires > ? OR expires = ?", Time.now, nil]) }
Run Code Online (Sandbox Code Playgroud)
我是Rails的新手,有没有明显的东西我缺少(或者可能是一个明显的语法错误)?
比较NULL值时需要使用特殊语法.试试这样:
scope :active, -> { where("expires > ? OR expires IS NULL", Time.zone.now) }
Run Code Online (Sandbox Code Playgroud)
我也改变Time.now以Time.zone.now使其使用你的应用程序配置的时区.
| 归档时间: |
|
| 查看次数: |
993 次 |
| 最近记录: |