Я группировка записей пробег в месяц в моей Rails 3.2 приложения:Получите сумму атрибутов записи при группировке в Rails?
mileages_controller.rb
def index
@mileages = Mileage.find_all_by_user_id(current_user.id)
@mileages_months = Mileage.find_all_by_user_id(current_user.id).group_by { |t| t.created_at.beginning_of_month }
respond_to do |format|
format.html # index.html.erb
format.json { render json: @mileages }
end
end
index.html.erb
<% @mileages_months.sort.each do |month, mileages| %>
<h4><%= month.strftime('%B %Y') %></h4>
<p>Total miles <strong><%= mileages.miles.sum %></strong>.</p>
<table>
<tr>
<th>Name</th>
<th>Miles</th>
<th>Start</th>
<th>Destination</th>
<th></th>
</tr>
<% for mileage in mileages %>
<tr>
<td><%= mileage.name %></td>
<td><%= mileage.miles %></td>
<td><%= mileage.start %></td>
<td><%= mileage.end %></td>
<td><%= link_to 'Show', mileage %></td>
</tr>
<% end %>
</table>
<% end %>
Как вы можете видеть, Я пытаюсь суммировать общие мили за каждый месяц, используя <%= mileages.miles.sum %>
. Это не сработает - но <%= mileages.first.miles %>
правильно показывает мили первой записи за каждый месяц.
Каков правильный способ суммирования столбцов миль за каждый месяц?
Какова ваша модель пробега, т.е. атрибуты? – Richlewis
@total_mileage = @ mileages_months.sum (: miles) это предположение, но обратите внимание, как передать нужный вам атрибут. – Richlewis
@ Richlewis состоит из «миль», «даты», «начала», «конца» и «имени» , – dannymcc