Rails 3.1 Придумайте, как изменить CSS флеш-сообщения От уведомления к успеху? - PullRequest
7 голосов
/ 05 декабря 2011

Rails 3.1 и Devise 1.5 вопрос.

Я использую следующий код для отображения флэш-сообщений в моем макете:

    <% flash.each do |key, message| %>
      <%= content_tag(:div, message, :class => "flash #{key}") %>
    <% end %>

Я бы хотел изменить класс css для некоторых моих подтверждающих сообщений с уведомления на успех, но я не знаю, где переопределить или изменить ключ, потому что я не знаю, где он установлен.

Кто-нибудь может указать мне правильное направление?

Спасибо!

Ответы [ 3 ]

1 голос
/ 25 марта 2013

Таким образом, способ сделать это - отредактировать контроллеры devise.

Когда вы устанавливаете Devise посредством обычной установки, я не думаю, что он устанавливает контроллеры (по крайней мере, для меня это не так).

Итак, сначала вы должны вручную добавить файлы контроллера и поместить их в свой проект в том же месте: https://github.com/plataformatec/devise/tree/master/app/controllers/devise

Как только у вас есть файлы в вашем проекте, перейдите в "session_controller.rb "file.

В одной строке 16 и 25 вы должны увидеть код:

set_flash_message :notice, :signed_in

и

set_flash_message :notice, :signed_out

Вам просто нужно изменить": note "to ": success"

Надеюсь, что работает!

0 голосов
/ 09 ноября 2013

Я столкнулся с этой проблемой, потому что я использую гем bootstrap-sass, который использует совершенно другую структуру классов для флеш-сообщений.Я пошел по пути решения этой проблемы с помощью sass, а не связывался с devise вообще (наследование sass потрясающе :)* И я добавляю простое правило к app/assets/stylesheets/custom.css.scss, чтобы заставить работать флеш-сообщения Devise:

/* Style Devise Flash messages like Bootstrap */
.alert-alert {
  @extend .alert-warning;
}

Вот и все!теперь flash[:alert] стилизован под стиль начальной загрузки flash[:warning].

0 голосов
/ 02 января 2012

Класс css устанавливается аргументом :class. Чтобы добавить класс notice (или success и т. Д.), Просто измените свой вызов на следующий:

<%= content_tag(:div, message, :class => "flash #{key} notice") %>
...