【问题标题】:Find model records against Time.now根据 Time.now 查找模型记录
【发布时间】:2016-03-18 22:47:22
【问题描述】:

我有一个模型,它有 2 个名为 startend 的特定字段。 这些是我想对照当前日期( Time.now )检查的日期,以便仅获取当前时间包含在 startend 存储值之间的记录

我尝试了一些东西,例如

Model.all.find_by(start: <Time.now , end: >Time.now) 

但我总是遇到语法错误。有时,第二个日期的字段名称 ( end ) 甚至会与我的控制器中的 'end' 关键字混淆。

【问题讨论】:

  • 您需要做的第一件事是将结束列的名称更改为finish 或end_dt 或end 以外的其他名称。如果您继续使用 end,疯狂将成为您的现实。

标签: ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord


【解决方案1】:

你可以试试这样的:

Model.where('start < ? and end > ?', Time.now, Time.now) 

顺便说一句,all 在这种情况下是多余的。

【讨论】:

  • 使用 find_by 实际上会返回一个有趣的错误:'未定义的方法每个..'在我的视图文件中。但是 Model.where('start ?', Time.now, Time.now) 似乎工作得很好!谢谢
  • @Maxence: find_by 返回单个对象,而where 返回一个集合。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 2018-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多