Рельсы мигают с предупреждением, предупреждением и ошибкой не отображаются; показывается только уведомление
На мой взгляд, у меня есть:
<% flash.now[:error] = "ERROR FLASH" %>
<% flash.now[:notice] = "NOTICE FLASH" %>
<% flash.now[:warning] = "WARNING FLASH" %>
Когда страница отрисовывается, появляется только синее информационное окно с NOTICE FLASH. Два других не будут показаны. То же самое происходит со знаками равенства:
<%= flash.now[:error] = "ERROR FLASH" %>
<%= flash.now[:notice] = "NOTICE FLASH" %>
<%= flash.now[:warning] = "WARNING FLASH" %>
Есть ли в моем приложении rails параметр, при котором предупреждения или ошибки не отображаются?
2 ответа
У меня была такая же проблема со следующим кодом:
redirect_to(docs_path, :warning => "I am here!!!") and return if @doc.nil?
использование ": уведомление" и ": предупреждение" вместо ": предупреждение" работает, как и ожидалось. Кажется, что вы можете установить: note and: alert непосредственно в методе перенаправления, но не: error и: warning.
Тестирование на flash[: предупреждение].nil? в следующем действии даёт истину, но flash[: note].nil? имеет значение false (т. е. вспышка: предупреждение не установлено, но установлено: уведомление).
Чтобы обойти это, я установил значение flash[: warning] перед перенаправлением так:
if @doc.nil?
flash[:warning] = "I am here!!!"
redirect_to(docs_path) and return
end
Это не так элегантно, но работает!
Rails не делает ничего магического с содержимым флеш-памяти, кроме как очищает его, когда это необходимо.
Это полностью зависит от вас, чтобы предпринять соответствующие действия с содержимым флеш-памяти, т.е. если вы хотите отобразить сообщение об ошибке, уведомление и предупреждение, вы должны поставить
<%= flash[:error] %>
Где-то в ваших представлениях шаблонов или макетов, где пользователь сможет их увидеть (и повторите для: предупреждение,: уведомление и любая другая флэш-клавиша, которую вы хотите отобразить таким образом)