2013-03-25 88 views
0

今天使用group_by,試圖讓我的頭腦,並看看它是否正確的解決方案,我試圖實現。我有以下型號使用Group_by Rails

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和客隊爲特定日期

查看

<% @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 

感謝

回答

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 }