这是一个相当小的事情,但相当烦人。
当我提交空白"创建帐户"表单(显示表单验证错误和样式),然后导航到另一个页面,然后返回到创建帐户页面,表单验证错误仍然在页面刷新前半秒钟。
当页面被移除时,是否有任何方法可以清除这些验证,以便在页面导航回来时它们不会再出现半秒?
查看代码:
<section class="form form_create_account">
<h2 class="form_header">Create Account</h2>
<%= form_for(@user, url: create_account_path) do |f| %>
<%= render 'shared/error_messages' %>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<% if @user.errors[:first_name].any? %>
<p class="error_message"><%= @user.errors[:first_name].first %></p>
<% end %>
<%= f.label :last_name %>
<%= f.text_field :last_name %>
<% if @user.errors[:last_name].any? %>
<p class="error_message"><%= @user.errors[:last_name].first %></p>
<% end %>
<%= f.label :email %>
<%= f.text_field :email %>
<% if @user.errors[:email].any? %>
<p class="error_message"><%= @user.errors[:email].first %></p>
<% end %>
<%= f.label :password %>
<%= f.password_field :password %>
<% if @user.errors[:password].any? %>
<p class="error_message"><%= @user.errors[:password].first %></p>
<% end %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
<% if @user.errors[:password_confirmation].any? %>
<p class="error_message"><%= @user.errors[:password_confirmation].first %></p>
<% end %>
<%= f.submit "Create Account" %>
<% end %>
</section>
答案 0 :(得分:0)
有时rails会自动执行此操作,但有时我们需要这样做。使用闪光灯时要特别注意渲染和放大重定向。 渲染时,您需要设置flash.now,而不是普通的闪光灯。
(例如:flash.now [:错误] =&#34;出现问题&#34;渲染,而不是闪光[:错误] =&#34;出现问题&#34;。)
如果您没有,则Flash消息可能不会显示在所呈现的页面上,并且会显示在访问过的下一页上。
这个答案是为了不显示flash [:errors]。您也可以使用隐藏闪存来引用它。
希望这会有所帮助