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

时间:2015-08-04 12:48:19

标签: ruby-on-rails postgresql

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

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

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

<% @expired.each do |location| %>
               <tr>
                <td>
                  <%= location.city %>                                                                                                                                                                                  
                </td>
                <td><%= location.when %>
                </td>
                <td><%= location.venue %></td>
                <td>
                  <%= location.start_time %> to <%= location.end_time %>
                </td>
                <td>General</td>
                <td><a href="http://smithridgehc.co.uk/" target="_blank">Smithridge Healthcare</a></td>
              </tr>
<% end %> 

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

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

可能是因为格式化的日期错误了吗?

1 个答案:

答案 0 :(得分:2)

when是Postgre的保留字(请参阅doc)。在将SQL用作列名时,您应该在SQL中使用""对其进行转义:

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