フラッシュの通知(緑の背景)とは異なる方法でフラッシュエラー(赤の背景)のスタイルを設定しようとしています。ただし、application.html.erbのレイアウトでこれを実行しようとしています。これにより、すべてのフラッシュを一度に処理できるため、インスタンス変数がなくなります。ただし、適切な変数を見つけるのに問題があります。これは私の現在のapplication.html.erbです:
<!DOCTYPE html>
<html>
<head>
<title><%= complete_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body class="clearfix">
<div class="bigwrapper">
<%= render 'layouts/header' %>
#I want to figure out how to split this part up into flash[:notice].each and flash[:error].each so I can style them separately
<% flash.each do |key, value| %>
<%= content_tag(:div, value, class: "alert alert-#{key}") %>
<% end %>
<%= yield %>
<%= render 'layouts/footer' %>
</div>
</body>
</html>
これは、flash [:error]を使用するサンプルセッションコントローラーです。
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_email(params[:session][:email])
if user && (!params[:session][:email].blank?) && user.authenticate(params[:session][:password])
if params[:remember_me]
cookies.permanent[:remember_token] = user.remember_token
else
cookies[:remember_token] = user.remember_token
end
sign_in user
redirect_to user_path(user)
else
flash.now[:error] = "Invalid email and/or password."
render 'new'
end
end
def destroy
sign_out
redirect_to root_url
end
終わり