我的Project模型有2个datetime atttributes:start_date和end_date。 现在我想要所有当前时间都在这些日期之间的项目。 我尝试使用start_date开始这样的事情:
@projects = Project.where(:start_date <= Time.now)
但这会返回错误:
comparison of Symbol with Time failed
有什么想法吗?谢谢!
答案 0 :(得分:11)
与某些ORM不同,活动记录不会使用方法来扩充符号类,以允许以这种方式表达除等式之外的表达式。你只需要做
Project.where('start_date <= ?', Time.now)
尖叫的宝石添加了这种东西并允许你写
Project.where{start_date < Time.now}
答案 1 :(得分:1)
你不能这样做::start_date <= Time.now
。您正在使用<=
运算符比较符号和日期。
如果要为查询添加条件,请将其作为字符串传递:
Project.where("start_date <= ?", Time.now);
答案 2 :(得分:0)
不幸的是,使用where子句比较日期,你将不得不进入SQL。尝试这样的事情:
@projects = Project.where(['projects.start_date <= ?', Time.now])