1

私はこれで多くの問題を抱えています:

RPIアプリケーションの場合、すべての結果は1つのテーブル内にあります:results

特定のデータ範囲に基づいてテーブルを印刷しようとしています: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

現在の例では、レールは算術演算を行っていると見なします。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 に答える