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 

在我看来,我想做的是列出那个特定日期的主队和客队比赛

看法

<% @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_date是一datetime列而不仅仅是一date列,你的控制器代码看起来像这样,

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