输入错误密码时出现验证错误时如何防止角色更改

Posted

技术标签:

【中文标题】输入错误密码时出现验证错误时如何防止角色更改【英文标题】:How to prevent role change when you get a validation error when you type the wrong password 【发布时间】:2012-02-21 22:54:51 【问题描述】:
<%-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】:

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

【讨论】:

我想这样做,这样当我尝试使用错误的确认密码提交内容时它不会改变数据 已修复!!路由搞砸了

以上是关于输入错误密码时出现验证错误时如何防止角色更改的主要内容,如果未能解决你的问题,请参考以下文章

每次更改密码时出现 vserver phpmyadmin 错误

密码更新时出现未经授权的错误

打开网页时出现403Forbidden是啥意思

当用户在 Blazor Webassembly 身份验证和授权中具有多个角色时出现问题?

验证 express js 中的表单字段时出现错误消息的问题

在运行SQL时出现错误,请问如何解决?