Поэтому я пытаюсь применить другой класс к div, содержащему флэш-сообщение, в зависимости от типа флэш-сообщения (например, ошибка, уведомление и т. Д.).
У меня есть это вmy application.html.erb
:
<%- flash.each do |name, msg| -%>
<% if name = "error" %>
<%= content_tag :div, msg, :id => "flash_#{name}", :class => "alert-message error" %>
<% elsif name = "notice" %>
<%= content_tag :div, msg, :id => "flash_#{name}", :class => "alert-message success" %>
<% elsif name = "warning" %>
<%= content_tag :div, msg, :id => "flash_#{name}", :class => "alert-message warning" %>
<% end %>
<%- end -%>
Но всегда выводится div
с id=flash_error
.
Почему это так?
Обновление 1:
Если я изменю проверки равенства на ==
, кажется, что эта часть оператора if
полностью пропускается.
<%- flash.each do |name, msg| -%>
<% if name == "error" %>
<%= content_tag :div, msg, :id => "flash_#{name}", :class => "alert-message error" %>
<% elsif name = "notice" %>
<%= content_tag :div, msg, :id => "flash_#{name}", :class => "alert-message success" %>
<% elsif name == "warning" %>
<%= content_tag :div, msg, :id => "flash_#{name}", :class => "alert-message warning" %>
<% end %>
<%- end -%>
Если вы заметили, в приведенном выше коде у меня есть ==
для error
и warning
и =
для notice
.Ну, в этом случае он на самом деле выводит notice div
, как я хочу.Кажется, что когда я делаю проверку для ="error"
, она полностью выходит из условия, независимо от того, была ли проверка верной.Но как только я добавляю ==
, он даже не делает проверку, как кажется.Очень странно!