在我的索引控制器中,我有一个查询来查找所有过去发生过的事件"事件发生的日期是什么时候
@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...
可能是因为格式化的日期错误了吗?
答案 0 :(得分:2)
when
是Postgre的保留字(请参阅doc)。在将SQL用作列名时,您应该在SQL中使用""
对其进行转义:
@expired = Location.where('"when" <= ?', Date.today)