уведомления и ошибки на рельсах3 - PullRequest
20 голосов
/ 25 декабря 2010

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

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

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

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

Ответы [ 2 ]

40 голосов
/ 25 декабря 2010

вспышка будет работать до тех пор, пока вы отображаете ее в макете:

<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 , который дает вам старое поведение.

8 голосов
/ 25 декабря 2010

Вы можете по-прежнему отображать флэш-сообщения в своем представлении с помощью:

<%= 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 %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...