🦩
フラッシュメッセージに色つけて、見やすくする。
コントローラー
app/sessions_controller.rb
def create
@user = User.find_by(name: params[:user][:name])
if @user && @user.valid_password?(params[:user][:password])
sign_in(@user)
flash[:login] = "ログインしました。"
redirect_to user_path(@user)
else
flash.now[:alert] = "ユーザー名またはパスワードが間違っています。"
render :new
end
end
ビュー
users/show.html.erb
<% if flash.now[:user_update] %>
<div class="alert alert-success">
<%= flash.now[:user_update] %>
</div>
<% elsif flash[:signup] %>
<div class="alert alert-success">
<%= flash[:signup] %>
</div>
<% elsif flash[:login] %>
<div class="alert alert-success">
<%= flash[:login] %>
</div>
<% elsif flash[:guest] %>
<div class="alert alert-success">
<%= flash[:guest] %>
</div>
<% end %>
-
elsif
にしないと、フラッシュメッセージを表示させなくてもいい時に、文章は出ないけど、指定した色だけ表示されてしまうので、elsif
にすること。 -
同じところにフラッシュメッセージを表示させる時、全部同じ、flash[:notice]にすると判断がつかなくなってしまう為、名前変える。(名前はなんでもいい。)
カラー
-
alert-success
→ 緑(成功時) -
alert-danger
→ 赤(投稿失敗時やログアウト、退会とか) -
alert-warning
→ 黄色(警告とか、注意書き) -
alert-info
→ 青(通知用とか)
Discussion