91s

プログラミング関係、日記などを書きます

activeadmin導入時、/adminにアクセスしたとき/admin/loginではなく/loginにリダイレクトされる不具合の修正法

完全に個人用メモにはなりますが修正にかなりの時間がかかったので、同じ現象で困っている人の参考になると幸いです。

  • 前提
    • Rails6, Ruby 2.7.0
    • activeadmin 2.6.0
    • admin_userの他に通常のuserも存在している
  • 起きたこと
    • /adminにアクセスしたとき/loginにリダイレクトされる
      • 理想は/admin/login
  • 解決法
    • lib/custom_failure.rbを以下のように変更
# frozen_string_literal: true

class CustomFailure < Devise::FailureApp
  def redirect_url
    return new_admin_user_session_path if request.original_fullpath == admin_root_path # 追加

    new_user_session_path
  end
end

このように、元々/loginが返っていたのを分岐させて/adminから呼ばれたときはadminのログインパスを返すように変更しました。

以上です。最後までご覧いただき、ありがとうございました。