Ruby on Rails 5 と deviseにて
社内システムに、ログイン機能を追加しました。
こちらのおかげで、退職者をログイン出来ないようにしました。
※退職者がログインすると、強制的にログイン画面に戻される
その際、アラートを表示させたく、
以下のようにしましたが何も表示されません。
deviseにてアラートを表示するにはどうすればよろしいのでしょうか?
宜しくお願い致します。
1.ログインの可否判定 ※controllers/application_controller.rb
ruby
1class ApplicationController < ActionController::Base 2 3 def after_sign_in_path_for(resource) 4 if current_employee.retire_date.blank? 5 else 6 sign_out Employee.find(current_employee.id) 7 8 #表示されない 9 flash[:alert] = '退職者はログインできません' 10 11 #こちらも表示されない 12 flash.now[:alert] = '退職者はログインできません' 13 end 14 root_path 15 end 16
2.アラート表示部分 ※views/layouts/application.html.erb
ruby
1 2 <div class="row"> 3 4 <% if alert %> 5 <%= alert %> 6 <% end %> 7 8 </div> 9 10
2017/11/08 追記
flashが表示されない原因が分かったかもです。
コントローラのsign_out でログアウトするため、
セッションと共にflashの内容も消えてるのだと思います。
そこで以下のようにしました
※controllers/application_controller.rb
ruby
1 #flash.now[:alert] = '退職者はログインできません' 2 redirect_to "/employees/sign_in", alert: '退職者はログインできません' 3 4
ですが下のようにDoubleRenderエラーになってしまいます。
ダブルレンダーエラーを回避出来ればメッセージを表示できそうに思うのですが
分かる方教えていただけないでしょうか?
宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。