Skip to content

Commit ab3ff2a

Browse files
committed
dojo数の集計とラベル生成処理をヘルパーに移動し、ビューをシンプルに整理
1 parent d75a1be commit ab3ff2a

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

app/controllers/home_controller.rb

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
class HomeController < ApplicationController
22
def show
3-
@dojo_count = Dojo.active_dojos_count
3+
@dojo_count = Dojo.active_dojos_count
44
@regions_and_dojos = Dojo.group_by_region_on_active
5-
@prefectures_and_dojos = Dojo.group_by_prefecture_on_active.transform_values do |dojos|
6-
count = dojos.pluck(:counter).sum
7-
{
8-
dojos: dojos,
9-
label: "#{count} Dojo#{'s' if count != 1}"
10-
}
11-
end
5+
@prefectures_and_dojos = Dojo.group_by_prefecture_on_active
126
end
137
end

app/helpers/dojo_helper.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module DojoHelper
2+
def dojo_count_label(count)
3+
if count == 1
4+
"#{count} Dojo"
5+
else
6+
"#{count} Dojos"
7+
end
8+
end
9+
10+
def total_dojos_count(dojos)
11+
dojos.sum(&:counter)
12+
end
13+
end

app/views/shared/_dojos.html+smartphone.erb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
<div id="accordion" class="panel-group" aria-multiselectable="true" role="tablist">
22
<% if @prefectures_and_dojos.present? %>
3-
<% @prefectures_and_dojos.each_with_index do |(prefecture, data), index| %>
3+
<% @prefectures_and_dojos.each_with_index do |(prefecture, dojos), index| %>
4+
<% dojo_count = total_dojos_count(dojos) %>
45

56
<div class="panel panel-default">
67
<div class="panel-heading" id="heading<%= index %>" role="tab">
78
<h4 class="panel-title">
89
<a data-toggle="collapse" href="#collapse<%= index %>" role="button">
910
<i class="fa fa-chevron-right" aria-hidden="true"></i>
10-
<%= prefecture %> - <%= data[:label] %>
11+
<%= prefecture %> - <%= dojo_count_label(dojo_count) %>
1112
</a>
1213
</h4>
1314
</div>
1415
<div class="panel-collapse collapse" id="collapse<%= index %>" role="tabpanel">
1516
<div class="panel-body grayscale-bg dojo-flex">
16-
<%= render partial: 'shared/dojo', collection: data[:dojos] %>
17+
<%= render partial: 'shared/dojo', collection: dojos %>
1718
</div>
1819
</div>
1920
</div>

0 commit comments

Comments
 (0)