rails3上的注意事项和错误

时间:2010-12-25 02:57:30

标签: ruby-on-rails ruby-on-rails-3

我读到某个地方,rails 3形式帮助器不再有嵌入其中的错误消息。我想知道当我在控制器中设置flash消息或者作为redirect_to中的内联通知时,我应该如何显示flash消息?我怎么能在我的视野中显示它们?对此有帮助吗?

例如,如果我有

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

如何在我的视图中显示通知?

2 个答案:

答案 0 :(得分:40)

只要您在布局中显示,

闪存仍然有效:

<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 gem来为您提供旧行为。

答案 1 :(得分:8)

您仍然可以在视图中显示Flash消息:

<%= 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 %>