Уведомления и ошибки на rails3
Я где-то читал, что у хардберга-рельсов 3 больше нет встроенных в него сообщений об ошибках. Мне интересно, как я должен показывать флеш-сообщения, когда я устанавливаю их внутри своего контроллера или как встроенное уведомление в redirect_to? Как я должен отображать их на моем представлении? Есть ли помощник для этого?
Например, если у меня есть
def update
if @person.save
flash[:notice] = "Successfully saved!"
end
end
как мне показать уведомление на моем представлении?
Ответы
Ответ 1
вспышка будет работать до тех пор, пока вы ее отобразите в своих макетах:
<div id="page">
<% if flash[:alert] %>
<p class="flash-error"><%= flash[:alert] %></p>
<% end %>
<% if flash[:notice] %>
<p class="flash-notice"><%= flash[:notice] %></p>
<% end %>
<%= yield %>
</div>
Вы можете либо отображать сообщения об ошибках вручную, либо использовать dynamic_form, который дает вам старое поведение.
Ответ 2
Вы можете отображать флэш-сообщения в своем представлении с помощью этого:
<%= flash[:notice] %>
Но если вы хотите отображать сообщения об ошибках:
#In your form
<%= form_for @foo do |f| %>
<%= render "shared/error_messages", :target => @foo %>
...
<% end %>
#shared/_error_messages.html.erb
<% if target.errors.any? %>
<div id="error_explanation">
<ul>
<% target.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>