Подтвердить что ты не робот

Уведомления и ошибки на rails3

Я где-то читал, что у хардберга-рельсов 3 больше нет встроенных в него сообщений об ошибках. Мне интересно, как я должен показывать флеш-сообщения, когда я устанавливаю их внутри своего контроллера или как встроенное уведомление в redirect_to? Как я должен отображать их на моем представлении? Есть ли помощник для этого?

Например, если у меня есть

def update
  if @person.save
    flash[:notice] = "Successfully saved!"
  end
end

как мне показать уведомление на моем представлении?

4b9b3361

Ответ 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 %>