Ruby on rails Rails where语句中的时间计算

Ruby on rails Rails where语句中的时间计算,ruby-on-rails,ruby-on-rails-3,datetime,squeel,Ruby On Rails,Ruby On Rails 3,Datetime,Squeel,我试图在where语句中进行一些时间计算。我想选择生命已经过去的报价 select_offers = Offer.where { (published_time + life_time) < DateTime.now } select\u offers=Offer.where{(发布的时间+生活时间)

我试图在where语句中进行一些时间计算。我想选择生命已经过去的报价

select_offers = Offer.where { (published_time + life_time) < DateTime.now }
select\u offers=Offer.where{(发布的时间+生活时间)

它不会抛出任何错误,但也不会返回对象。我用的是橡皮泥宝石。最好的解决方法是什么?

假设
寿命
是报价有效的天数

select_offers = Offer.where(["DATE_ADD(published_time, INTERVAL life_time DAY) <  ? " , DateTime.now ]
select\u offers=Offer.where([“DATE\u ADD(published\u time,INTERVAL life\u time DAY)<?”,DateTime.now]

参考:-mysql的功能

你的
生活时间
的数据类型是什么?它是
int
,但在视图中
发布的生活时间+生活时间
可以很好地工作并增加天数。在statemet生活时间.days不工作的地方。你确定你使用了正确的大小吗?我相信rails会比较两种不同的日期类型mats,它会将日期转换为自纪元起的秒数