2013-04-11 94 views
0

我试图找到两个日期之间的所有广告,限制什么,我所看到的与控制器之间我没有看到Rails的范围

这里模型

Advertiser 
# publishon   :date 
# publishoff   :date 

控制器看看有跟随

@advertisments = Advertiser.where("publishon >= ? AND publishoff <= ?", Date.today, Date.today) 

由于某种原因它不抓住它,我是否需要更改Date.today的格式?

+2

你的意思是Advertisement.where? – 2013-04-11 00:55:14

+0

你是否得到一个ActiveRecord :: RecordNotFound异常,或其他?您确定数据库中的数据符合您指定的标准吗? – 2013-04-11 00:56:16

+0

没有它的实际广告客户,我也将以下代码放在<%if @ advertisments.nil? %>在我的意见,以防万一没有选择,但如果我做广告客户,首先它的工作 – Jseb 2013-04-11 00:57:40

回答

1

当您查询时,您的日期可能会转换为DateTimes。检查你的日志生成验证SQL,但如果是这样,你要查询:

>= Wed, 10 Apr 2013 00:00 && <= Wed, 10 Apr 2013 00:00 

你可能有时间和你的广告日期所设定分钟。尝试

(..., Date.today, Date.tomorrow) 

务必添加规格或回归测试,以确保您只能在24小时内选择。

+0

这里是我的选择生成的sql查询SELECT'advertisers'。* FROM'advertisers' WHERE(publishon> ='2013-04-10'AND publishoff <='2013-04-10') – Jseb 2013-04-11 01:06:07

+0

'publishon'和'publishoff'列的类型是什么? – 2013-04-11 01:06:47

+0

从模式文件中,他们是t.date“publishon”t.date“publishoff” – Jseb 2013-04-11 01:09:28