💬
【Rails】Activeadminでファイル名とは異なるコントローラを通っているときに確認すること
起こったこと
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
のようなログが出る
- この例の場合、index にアクセスした際は
参考(Activeadmin 公式)
Discussion