1

我正在尝试以不同于我的闪光通知(绿色背景)的方式设置我的闪光错误(红色背景)的样式。但是,我正在尝试在 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

结尾

4

1 回答 1

1

究竟是什么问题?您已经可以单独设置它们的样式,因为您正在构建具有不同类名的 flash div,具体取决于 flash 类型:

class: "alert alert-#{key}"

只需添加一些CSS:

.alert-error { background: red; }
.alert-notice { background: green; }
于 2012-10-21T23:54:55.740 回答