💬

【Rails】Activeadminでファイル名とは異なるコントローラを通っているときに確認すること

2022/01/25に公開

起こったこと

Activeadmin を使用している Rails アプリケーションで、ファイル名にもモデル名にもないコントローラを通っていた。

ファイル名やモデル名がルーティングの名前になるので、該当する admin 以下のファイルやモデルを参照すれば処理が見れると思っていたがどちらも見つからなくて困った

原因

  • リソースに対して asで別名をつけることができ。その別名がルーティングになるという Activeadmin の仕様を知らなかった
projects.rb
ActiveAdmin.register Project, as: 'ultra_project' do # → /admin/ultra_projects のルーティングが作られる。
  index do
  end
end
  • また、つけた別名がスネークケースからパスカルケースになり、そのままコントローラの名前として処理される
    • この例の場合、index にアクセスした際は Processing by Admin::UltraProjectsController#index as HTML のようなログが出る

参考(Activeadmin 公式)

https://activeadmin.info/2-resource-customization.html#rename-the-resource

Discussion