用于rails应用程序的PG :: SyntaxError

在我的索引控制器中,我有一个查询来查找所有过去发生的事件“何时是事件发生的日期

@expired = Location.where('when <= ?', Date.today) 

这是我的index.html.erb视图。

           to   General Smithridge Healthcare   

当我运行服务器时,我得到以下错误:

 PG::SyntaxError: ERROR: syntax error at or near "when" LINE 1: SELECT "locations".* FROM "locations" WHERE (when <= '2015-0... 

可能是由于错误的格式化日期?

when是Postgre的保留字(见doc )。 当使用它作为列名时,您应该在SQL中使用""转义它:

 @expired = Location.where('"when" <= ?', Date.today)