Rails查询变为空,但是如果在sql控制台中进行了serched,则相同的查询将检索记录

时间:2013-02-05 19:49:54

标签: mysql sql ruby-on-rails ruby-on-rails-3 sequel

好的,所以这个问题已经过了3天了,我确定它很简单,我似乎无法弄明白。

我创建了一个范围,以便在两天之内返回所有生日以及一些其他条件的用户后,我遇到了一个问题。该信息应该呈现给用户仪表板。

这是困扰我的,如果我刷新页面,则找到0条记录。如果我在rails控制台(开发环境)中运行作用域,它也会返回0条记录。但是,如果我从控制台复制查询(活动记录器已打开)并将其直接放入我的sql客户端,它将返回正确的记录。此范围也与其他一些范围链接,但如果我要从查询链中删除此范围,查询有效,它只是不会过滤出生日范围的日期,就像我希望此范围一样

是的,sql客户端在同一个数据库中。

范围:

where(
  "(date_of_birth <= ?) OR DATE_ADD(date_of_birth, INTERVAL ? YEAR) BETWEEN ? AND ?", 
  min_age.years.ago.to_date, 
  min_age, 
  beginning_of_month, 
  end_of_month
)

查询:

  

SELECT drivers。* FROM drivers WHERE((date_of_birth&lt; =   &#39; 1990-02-05&#39;)或DATE_ADD(date_of_birth,INTERVAL 23年)BETWEEN   &#39; 2013年4月1日&#39; AND&#39; 2013-04-30&#39;)AND(drivers.id NOT IN(SELECT   来自follow_ups的driver_id,其中team_id = 2))AND   (average_miles_per_day&gt; = 0.35)AND(travel_time&lt; 2000)AND   (travel_time +(average_miles_per_day * 84)&gt; = 2000)

任何时候rails尝试执行此查询它都不起作用。在sql客户端中执行此查询时,它就像魅力一样。

1 个答案:

答案 0 :(得分:0)

也许......字符串到日期转换存在问题。尝试使用STR_TO_DATE()函数转换模型。请为每个日期做一次......让我知道它有帮助。