У меня есть контроллер, который выполняет следующую строку перед рендерингом представления и выводом ошибки.
flash[:error]="Flash error"
flash[:info] = "Flash info"
Я бы хотел отформатировать это красиво. Для этого я написал помощник, который выглядит следующим образом
def show_flash
a=""
[:success, :info, :error, :warning].each do |key|
a += content_tag(:div, flash[key], :id => key, :class => "#{key}") unless flash[key].blank?
end
end
На мой взгляд, я звоню:
<%= show_flash %>
Когда я пытаюсь запустить это, веб-страница отображает полный текст show_flash, включая теги div, угловые скобки и все. Когда я проверяю элемент (используя Firefox или Chrome), он показывает текст в двойных кавычках.
Затем я попытался изменить одну строку в помощнике следующим образом:
a = content_tag(:div, flash[key], :id=>key, :class=>"#{key]") unless flash[key].blank?
т.е. Я бы захватил только последний тег контента (ошибка) вместо обоих.
Во втором случае веб-браузер отображал тег div, отформатированный должным образом с моими правилами CSS для класса «error». Я не видел никаких тегов div, напечатанных в браузере.
Почему объединение двух элементов content_tag вызвало у меня это горе?
Я ценю любую помощь, которую вы можете мне оказать.