我读到某个地方,rails 3形式帮助器不再有嵌入其中的错误消息。我想知道当我在控制器中设置flash消息或者作为redirect_to中的内联通知时,我应该如何显示flash消息?我怎么能在我的视野中显示它们?对此有帮助吗?
例如,如果我有
def update
if @person.save
flash[:notice] = "Successfully saved!"
end
end
如何在我的视图中显示通知?
答案 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 %>