我想问一下是否可以在不使用Twitter Bootstrap的情况下更改Flash消息的外观?
这是我的观点:.index.html.erb
<form class="login-form" action="/login" id="login-form" method="post" >
<h2 class="login-title">Sign In</h2>
<% flash.each do |name, msg| -%>
<%= content_tag :div, msg, class: name %>
<% end -%>
而我的控制器如下:
def create
@user = User.find_by_email(params[:email])
# If the user exists AND the password entered is correct.
if @user && @user.authenticate(params[:password])
# login code comes here
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
如何在不使用Twitter Bootstrap的情况下设置错误Flash消息的样式?
先感谢您!
最佳答案
您可以简单地将一个CSS类分配给Flash消息,并为其设置适当的样式:
<% flash.each do |name, msg| %>
<div class="custom-alert">
<%= msg %>
</div>
<% end %>
在您合适的样式表中:
.custom-alert {
background-color: #d96459;
}
如果要基于闪存名称分配各种自定义警报类别,则可以定义一个帮助程序,以有条件地输出类别名称,并将其嵌入到标记中的类别名称中:
module ApplicationHelper
def alert_class(flash_name)
if flash_name == "success"
return "success-class"
elsif flash_name == "error"
return "error-class"
else
return nil
end
end
end
# And then in your markup:
<% flash.each do |name, msg| %>
<div class=<%= name %>>
<%= msg %>
</div>
<% end %>
希望这可以帮助!