Ruby on Rails Flash messages e Bootstrap


E chega aquele momento em que você percebe que os nomes do níveis de flash messages do Rails não batem 100% com as classes alert-* do Twitter Bootstrap.

A solução é criar um help para fazer um de-para das classes, adicionando o seguinte método ao seu application_helper.rb:

def flash_class(level)
    case level
        when 'notice' then "alert alert-info"
        when 'success' then "alert alert-success"
        when 'error' then "alert alert-error"
        when 'alert' then "alert alert-error"
    end
end

E no local no template onde devem ser exibidas as mensagens, adicionamos um pequeno loop pelos níveis de mensagem que existirem:

<% flash.each do |key, value| %>
      <div class="<%= flash_class(key) %>">
            <%= value %>
      </div>
<% end %>

basta usar normal depois:

flash[:success] = "Babá das Cove!"
flash[:notice] = ''Um dois três Bolinha!"
flash[:error] = ''Teste um dois três, eu vi uma joaninha!"
flash[:alert] = "Ela saiu voando pela porta da cozinha!"


Comentários

Postagens mais visitadas deste blog

Bel Duarte Fotografia

Como resolver 99% dos defeitos de mouse sem fio de qualquer fabricante

Faz backup, cópia ou usa Git?