我一直遇到很多麻烦:
对于RPI应用程序,我的所有结果都在一个表格中:结果
我正在尝试根据特定数据范围打印表格: 2011-07-31..2012-07-01
在我的控制器中:
class SeasonsController < ApplicationController
def s2012
@results = Result.all
@s2012 = Result.where(:date => (2011-07-31)..(2012-07-01))
end
end
在我看来:
<table>
<tr>
<th>Event ID</th>
<th>Date</th>
</tr>
<% @s2012.each do |result| %>
<tr>
<td><%= result.event_id %></td>
<td><%= result.date %></td>
</tr>
<% end %>
</table>
这不会输出任何错误(小奇迹),但视图中不显示任何内容。 @results = Result.all
打印所有整个表格就好了。但是,我如何将其限制在特定的数据范围?
答案 0 :(得分:0)
也许试试:
Date.parse('2011-07-31')..Date.parse('2012-07-01')
答案 1 :(得分:0)
在你当前的例子中,rails会认为你在做算术。您正在查看1973年和2004年之间的日期。您希望首先将它们转换为日期对象。做
@s2012 = Result.where(:date => DateTime.parse('2011-07-31')..DateTime.parse('2012-07-01'))
答案 2 :(得分:0)
我知道你正在尝试将所有ActiveRecordy都这样做,但实际上它比你自己编写SQL where子句的可读性差。
Result.where('date BETWEEN ? AND ?',
Date.parse('2011-07-31'),
Date.parse('2012-07-01'))