sessions_controllerを使ってログイン機能を次のように実装したのですが、
ログインに失敗した時だけflashメッセージがうまく表示されず困っています。
・ログインに失敗した場合、ログイン画面がrenderされ、flashメッセージが表示されない
・そのままページを更新すると、flashメッセージが表示される
・もう一度ページを更新すると、flashメッセージが消える(動作的には問題ない)
renderは成功しており、エラー表示などはありません。
新しく別のアプリを製作してみたのですが、全く同じ結果になりました。
何が良くないのでしょうか?
sessions_controller
def create user = User.find_by(email: params[:session][:email].downcase) if user && user.authenticate(params[:session][:password]) session[:user_id] = user.id flash[:notice] = "ログインしました" redirect_to user_path(user.id) # posts_pathへ変更 else flash[:danger] = "ログインに失敗しました" render "new" end end
application.html.erb
<% flash.each do |key, value| %> <%= content_tag(:div, value, class: "#{key}") %> <% end %> <%= yield %>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。