Ruby 关于 Rails .find_by_sql 引用问题

Ruby on Rails .find_by_sql quotes issue

我在以下 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;

在日期字符串周围添加了一组额外的引号,这会导致错误。有什么办法可以去掉多余的一对引号吗?

您尝试过使用 where 吗?

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