2015-06-17 6 views
2

У меня есть представление, где я хочу отображать флеш-сообщение для некоторых событий. Я могу видеть флэш-сообщение, но не в цвете, как это должно быть с бутстрапом. например, зеленый для успеха, синий для уведомления и т. д., но я вижу все в белом.Flash-сообщение не имеет классов начальной загрузки

Вот мой код:

<% flash.each do |name, msg| %> 
    <%= content_tag :div, msg, class: name %> 
<% end %> 

PS: это не полный код, просто фрагмент кода, чтобы дать представление, другие классы начальной загрузки работают, но здесь, кроме сообщения в уродливом белом фоне я не получаю ничего. Какие-либо предложения?

ответ

6

Вы можете использовать вспомогательный метод для присвоения классов в начальной загрузки в соответствии с типом flash сообщений уведомления:

def alert_for(flash_type) 
    { 
     success: 'alert-success', 
     error: 'alert-danger', 
     alert: 'alert-warning', 
     notice: 'alert-info' 
    }[flash_type.to_sym] || flash_type.to_s 
end 

И затем использовать его как:

<% flash.each do |name, msg| %> 
    <%= content_tag :div, msg, class: [:alert, alert_for(name)]%> 
<% end %> 
+0

Этот метод def должен находиться в контроллере или на странице html? – user3290805

+0

Вы можете поместить его в папку 'helpers' (' module ApplicationHelper', 'application_helper.rb') – potashin

0

Я думаю, вы должны дать правильный класс css.

«имя» здесь следует заменить на «alert alert-success».