about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2021-03-26 18:36:16 +0100
committerGitHub <noreply@github.com>2021-03-26 18:36:16 +0100
commita650a1157d5b71bc5718759643fe5bb572b16a8b (patch)
treeecf2c5696521b912c578b90543cedd0e202db4d3
parent59f94593d059239c28ab5fb8e2a0c23ce2590254 (diff)
Fix /admin/tags/:id crashing since Rails 6.1 update (#15953)
Raw SQL passed to `pluck` now has to be explicitly marked as SQL via
Arel.sql, see https://github.com/rails/rails/pull/27947
-rw-r--r--app/controllers/admin/tags_controller.rb4
-rw-r--r--spec/controllers/admin/tags_controller_spec.rb12
2 files changed, 14 insertions, 2 deletions
diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb
index 59df4470e..eed4feea2 100644
--- a/app/controllers/admin/tags_controller.rb
+++ b/app/controllers/admin/tags_controller.rb
@@ -59,8 +59,8 @@ module Admin
                              .where(Status.arel_table[:id].gteq(Mastodon::Snowflake.id_at(Time.now.utc.beginning_of_day)))
                              .joins(:account)
                              .group('accounts.domain')
-                             .reorder('statuses_count desc')
-                             .pluck('accounts.domain, count(*) AS statuses_count')
+                             .reorder(statuses_count: :desc)
+                             .pluck(Arel.sql('accounts.domain, count(*) AS statuses_count'))
     end
 
     def set_counters
diff --git a/spec/controllers/admin/tags_controller_spec.rb b/spec/controllers/admin/tags_controller_spec.rb
index 5c1944fc7..9145d887d 100644
--- a/spec/controllers/admin/tags_controller_spec.rb
+++ b/spec/controllers/admin/tags_controller_spec.rb
@@ -20,4 +20,16 @@ RSpec.describe Admin::TagsController, type: :controller do
       expect(response).to have_http_status(200)
     end
   end
+
+  describe 'GET #show' do
+    let!(:tag) { Fabricate(:tag) }
+
+    before do
+      get :show, params: { id: tag.id }
+    end
+
+    it 'returns status 200' do
+      expect(response).to have_http_status(200)
+    end
+  end
 end