0

今日group_byを使用して、頭を悩ませて、私が達成しようとしていることに対してそれが正しい解決策であるかどうかを確認しようとしています。私は次のモデルを持っています

class Fixture < ActiveRecord::Base
  attr_accessible :home_team, :away_team, :kickoff_time, :fixture_date
end

すべてのフィクスチャをfixture_dateでグループ化したい。これまでのところ、私のコントローラーは次のようになっています

def fixturelist
  @fixtures = Fixture.all
  @fixture_date = @fixtures.group_by { |fd| fd.fixture_date }
end 

私の見解では、その特定の日付のhome_teamとawayチームの試合を一覧表示したいと思います。

意見

<% @fixture_date.each do |f| %>
 <%= f %>
<% end %>

これにより、日付ごとにすべてのフィクスチャの配列が出力されるため、group_byが機能します。これを正しく機能させるためのいくつかのポインタを探しています。つまり、各日付にリストされているすべてのフィクスチャを参照してください。実用的な例を見ると、もう少し理解するのに役立つはずです

Date

Team 1 Vs Team2
Team 1 Vs Team2
Team 1 Vs Team2

Date 2

Team 1 Vs Team2
Team 1 Vs Team2
Team 1 Vs Team2

ありがとう

4

1 に答える 1

1

これをチェックしてください、

http://railscasts.com/episodes/29-group-by-month

ビューコードを次のようにしたいと思います。

<% @fixture_date.sort.each do |date, fixtures| %>
  <h2><%= date %></h2>

  <% fixtures.each do |fixture| %>
    <%= fixture.team_1 %> VS <%= fixture.team_2 %>
  <% end %>
<% end %>

編集:

そして、あなたfixture_datedatetime単なる列ではなく列であるdate場合、コントローラーコードは次のようになります。

@fixture_date = @fixtures.group_by { |fd| fd.fixture_date.beginning_of_day }
于 2013-03-25T11:57:32.313 に答える