Ruby on Rails .find_by_sql引用问题

时间:2015-02-27 15:32:39

标签: mysql ruby-on-rails ruby find-by-sql

我在以下MySQL语句中使用日期变量时遇到问题。日期变量包含表示日期的字符串。

personal = Event.find_by_sql ["SELECT * 
                                 FROM events 
                                WHERE DATE(start) = ?
                                  AND HOUR(start) = ? 
                                  AND user_id = ?;", date, hour, user]

以下是在数据库上运行的结果查询。

SELECT * 
  FROM events 
 WHERE DATE(start) = ''2015-02-27'' 
   AND HOUR(start) = 9 
   AND user_id = 123456789;

在日期字符串周围添加了一组额外的引号,这会导致错误。有没有办法摆脱额外的报价?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用where

personal = Event.where("DATE(start) = ?", date.to_date).
  where("HOUR(start) = ?", hour).
  where(user_id: user)