如何在键入错误密码时收到验证错误时阻止角色更改

时间:2012-02-21 22:54:52

标签: ruby-on-rails ruby validation devise edit

<%-roles = Role.all%>

<%= panel "Edit" do%>

 <%= semantic_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
  <%= f.error_messages %>
  <% f.inputs do %>
  <p><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
  <%= f.password_field :password %></p>
  <p><%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %></p>

  <p><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
  <%= f.password_field :current_password %></p>
  <%=f.input :roles,:collection => Role.all%>
<% end %>
    <% f.buttons do %>
<%=f.submit "Update" %></p>
<% end %>
  

在这里,当我没有输入任何密码时,会显示错误消息,但同时也会更改用户的角色。如何使角色不会改变?

1 个答案:

答案 0 :(得分:0)

用户的角色更改在内存中,数据库中没有。如果发生验证错误,您可以执行model.reload以丢弃内存更改并从数据库重新加载用户。