Devise 自体は Rails エンジンであり、変更したいファイルのコピーをローカル ディレクトリに作成することで、その機能をオーバーライドできます。Rails は、リクエストに対して適切なコントローラーを探し始めると、最初にローカル アプリケーションをチェックし、次にベンダー/gem、そしてロードされた gem 自体をチェックします。
Devise の場合、コントローラーの変更は次のように行う必要があると述べています。
コントローラーの構成
ビュー レベルでのカスタマイズでは不十分な場合は、次の手順に従って各コントローラーをカスタマイズできます。
1) Admins::SessionsController などのカスタム コントローラーを作成します。
class Admins::SessionsController < Devise::SessionsController
end
2) ルーターにこのコントローラーを使用するように指示します。
devise_for :admins, :controllers => { :sessions => "admins/sessions" }
3) コントローラーを変更したため、"devise/sessions" ビューは使用されないため、"devise/sessions" を "admin/sessions" にコピーすることを忘れないでください。
Devise はフラッシュ メッセージを使用して、サインインが成功したか失敗したかをユーザーに知らせることに注意してください。Devise は、アプリケーションが必要に応じて「flash[:notice]」と「flash[:alert]」を呼び出すことを想定しています。
引用元は次のとおりです。https://github.com/plataformatec/devise