今天使用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和客队比赛
查看
<% @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
由于
答案 0 :(得分: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 }