1

我在这方面遇到了很多麻烦:

对于 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打印整张桌子就好了。但是如何将其限制在特定的数据范围内?

4

3 回答 3

0

也许尝试:

 Date.parse('2011-07-31')..Date.parse('2012-07-01')
于 2013-03-19T02:53:46.673 回答
0

在您当前的示例中,rails 会认为您正在做算术。您正在查看数字 1973 和 2004 之间的日期。相反,您希望首先将它们转换为日期对象。做

@s2012 = Result.where(:date => DateTime.parse('2011-07-31')..DateTime.parse('2012-07-01'))
于 2013-03-19T02:54:04.960 回答
0

我知道您正在尝试全部使用 ActiveRecordy,但实际上它的可读性不如您自己编写 SQL where 子句。

Result.where('date BETWEEN ? AND ?',
             Date.parse('2011-07-31'),
             Date.parse('2012-07-01'))
于 2013-03-19T02:58:36.187 回答