使用命名范围

时间:2011-03-29 06:24:31

标签: ruby-on-rails named-scope

我的计划模型的开始时间为日期时间持续时间以分钟为整数

使用命名范围有一种方法可以获得(start_time + duration) < current_time的记录吗?

1 个答案:

答案 0 :(得分:2)

您可以使用SQL级别日期操作函数实现所要求的内容,例如mysql's DATE_ADD

scope :not_over, where('DATE_ADD(start_time, INTERVAL duration MINUTE) > UTC_TIMESTAMP()')

虽然如果考虑性能,您可能需要预先计算'end_time'列并在其上添加索引。