gpt4 book ai didi

ruby-on-rails - 设计破坏用户而不是更新它

转载 作者:数据小太阳 更新时间:2023-10-29 08:22:45 24 4
gpt4 key购买 nike

我有一个非常奇怪的错误我有一个设计用户模型

class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :lockable, :confirmable, :timeoutable,:omniauthable and
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end

在我的 routes.rb 中有这些路线

devise_for :users, :controllers => {confirmations: 'confirmations', :registrations => "registrations", :sessions=>"sessions"}

我的更新用户表单看起来像这样

<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
<% if flash[:error] %>
<div class="alert alert-danger fade in" role="alert">
<%= flash[:error] %>
</div>
<% end %>
<% if devise_error_messages? %>
<div class="alert alert-danger fade in" role="alert">
<%= devise_error_messages! %>
</div>
<% end %>

<div class="form-group">
<%= f.label :email %>
<%= f.email_field :email, autofocus: true,:class=>'custom-input form-control' %>
</div>

<% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
<div>Currently waiting confirmation for: <%= resource.unconfirmed_email %></div>
<% end %>

<div class="form-group">
<%= f.label :password %> <i>(leave blank if you don't want to change it)</i>
<%= f.password_field :password, autocomplete: "off", :class=>'custom-input form-control' %>
</div>

<div class="form-group">
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, autocomplete: "off", :class=>'custom-input form-control' %>
</div>

<div class="form-group">
<%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i>
<%= f.password_field :current_password, autocomplete: "off", :class=>'custom-input form-control' %>
</div>

<div class="form-group">
<div class="row">
<div class="col-md-4">
<%= f.submit "Update", class: "btn btn-primary" %>
</div>
<div class="col-md-8">
<%= button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete, class: "btn btn-danger" %>
</div>
</div>
</div>
<% end %>

当我尝试更新我的帐户时,它破坏了我的帐户而不是更新它我很震惊为什么我会收到这个错误请帮助我提前谢谢

最佳答案

button_to 生成一个表单,因此您的标记将生成一个嵌套在第二个表单中的表单。

这不是合法的 html 并且在过去我看到过这样的行为,例如一个表单中的提交按钮实际上提交了另一个表单。这似乎就是您正在发生的事情。

您应该将调用移至表单外的 button_to

关于ruby-on-rails - 设计破坏用户而不是更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25507304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com