diff --git a/app/controllers/providers_controller.rb b/app/controllers/providers_controller.rb index 91a371b3..f8a6ba5d 100644 --- a/app/controllers/providers_controller.rb +++ b/app/controllers/providers_controller.rb @@ -3,7 +3,7 @@ class ProvidersController < ApplicationController before_action :redirect_contributors def index - @providers = Provider.all + @providers = Provider.includes(:regions).order(:name) end def show diff --git a/app/controllers/regions_controller.rb b/app/controllers/regions_controller.rb index 1370295b..4059933b 100644 --- a/app/controllers/regions_controller.rb +++ b/app/controllers/regions_controller.rb @@ -4,7 +4,11 @@ class RegionsController < ApplicationController # GET /regions def index - @regions = Region.all + @regions = Region + .left_joins(:providers) + .select("regions.*, COUNT(providers.id) AS providers_count") + .group("regions.id") + .order(:name) end # GET /regions/1 diff --git a/app/views/providers/_form.html.erb b/app/views/providers/_form.html.erb index edb3b7de..b977571c 100644 --- a/app/views/providers/_form.html.erb +++ b/app/views/providers/_form.html.erb @@ -25,12 +25,12 @@ -
+
diff --git a/app/views/providers/index.html.erb b/app/views/providers/index.html.erb index ce4974ec..ed30d931 100644 --- a/app/views/providers/index.html.erb +++ b/app/views/providers/index.html.erb @@ -19,6 +19,8 @@ Provider Type + Prefix + Regions Provider Actions @@ -27,6 +29,8 @@ <%= provider.name %> <%= provider.provider_type %> + <%= provider.file_name_prefix %> + <%= provider.regions.pluck(:name).join(", ") %> <%= link_to provider, class: "btn btn-primary btn-sm" do %> View diff --git a/app/views/regions/index.html.erb b/app/views/regions/index.html.erb index 248c3004..b6a0e1eb 100644 --- a/app/views/regions/index.html.erb +++ b/app/views/regions/index.html.erb @@ -26,7 +26,7 @@ <% @regions.each do |region| %> <%= region.name %> - 1 + <%= region.providers_count %> <%= link_to region, class: "btn btn-primary btn-sm" do %> View diff --git a/spec/views/regions/index.html.erb_spec.rb b/spec/views/regions/index.html.erb_spec.rb index fe3561aa..01ba32df 100644 --- a/spec/views/regions/index.html.erb_spec.rb +++ b/spec/views/regions/index.html.erb_spec.rb @@ -1,8 +1,13 @@ require "rails_helper" RSpec.describe "regions/index", type: :view do + let!(:regions) { [ create(:region, name: "Region 1"), create(:region, name: "Region 2") ] } before(:each) do - assign(:regions, [ create(:region, name: "Region 1"), create(:region, name: "Region 2") ]) + assign :regions, Region + .left_joins(:providers) + .select("regions.*, COUNT(providers.id) AS providers_count") + .group("regions.id") + .order(:name) end it "renders a list of regions" do