Rails 3.1和design1.5问题。
我使用以下代码在我的布局中显示flash消息:
<% flash.each do |key, message| %>
<%= content_tag(:div, message, :class => "flash #{key}") %>
<% end %>
我想改变我的一些确认消息的css类从通知到成功,但我不知道在哪里重写或更改键,因为我不知道它在哪里设置。
谁能给我指个正确的方向?谢谢!
所以要做到这一点的方法是编辑设计控制器。
当你通过正常安装安装设计,我不认为它安装控制器(至少它没有为我)。
因此,首先你应该手动添加控制器文件,并将它们放入项目的相同位置:https://github.com/plataformatec/devise/tree/master/app/controllers/devise一旦项目中有了这些文件,转到"sessions_controller"。rb文件。
一行16 &25、你应该看到下面的代码:
set_flash_message :notice, :signed_in
和
set_flash_message :notice, :signed_out
你只需要把":notice"改成":success"
希望这有效!
我遇到了这个问题,因为我使用的是bootstrap-sass gem,它为flash消息使用了完全不同的类结构。我选择了用sass来解决这个问题,而不是用设计来解决这个问题(sass继承是很棒的:)。
因此,我在app/view/layouts/application.html.haml
中渲染flash消息:
%div.container
- flash.each do |key, value|
= content_tag(:div, value, class: "alert alert-dismisable alert-#{key}")
并且,我为app/assets/stylesheets/custom.css.scss
添加了一个简单的规则,以获得设计的闪光消息工作:
/* Style Devise Flash messages like Bootstrap */
.alert-alert {
@extend .alert-warning;
}
就是这样!现在flash[:alert]
的风格就像bootstrap的flash[:warning]
。
css类由:class
参数设置。要添加notice
(或success
等)类,只需将调用更改为以下内容:
<%= content_tag(:div, message, :class => "flash #{key} notice") %>