ruby-on-rails - ROR:尝试使用“put”触发更新路由,但由于某种原因删除而不是
问题描述
我有一个正在开发的 Rails 应用程序,并且正在使用设计进行身份验证。我遇到了一个问题,当我尝试更新用户详细信息而不是更新用户时,用户刚刚被删除。
在registrations/edit.html.erb 我有:
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), method: :put) do |f| %>
... input tags and styling
<% end %>
生成html:
<form class="edit_user" id="edit_user" enctype="multipart/form-data" action="/users" accept-charset="UTF-8" method="post">
<input type="hidden" name="_method" value="put" />
<input type="hidden" name="authenticity_token" value="Q2U4gEBfaIwCo2Vwi2fwXgwYLjzE4HpoDC8KN52m2GGqEdb94jd/c3TyFhEJtQEziHat9zFQs+e+fRJp4/j2WA==" />
... rest of the input tags
</form>
这里的关键是<input type="hidden" name="_method" value="put" />
在 rails 这应该会触发 PUT 路由,但是由于某种原因,当我提交表单时它会触发删除路由:
Started DELETE "/users" for 127.0.0.1 at 2020-06-01 16:15:48 +0100
(0.6ms) SET NAMES utf8mb4 COLLATE utf8mb4_bin, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
(0.2ms) SELECT `schema_migrations`.`version` FROM `schema_migrations` ORDER BY `schema_migrations`.`version` ASC
有没有人遇到过这种情况并知道可能是什么原因造成的?
编辑
我的配置/routes.rb
# frozen_string_literal: true
Rails.application.routes.draw do
resources :posts
namespace :admin do
resources :users
root to: "users#index"
end
devise_for :users, module: 'users'
get 'profile', to: 'profile#index'
root to: "home#index"
end
解决方案
推荐阅读
- python - 我编写了一个自定义函数来从 csv 文件中获取数据,该函数在代码中不能多次使用
- uikit - UIKit Tabview 到屏幕顶部
- typeahead.js - Typeahead js 不工作,从另一个工作中复制的相同结构
- r - IBrokers:循环遍历 r 中 reqHistoricalData 的 endDateTime 和 twsEquity 参数对的数据帧
- json - 从s3读取json文件以使用glueContext.read.json粘合pyspark会给出错误的结果
- c# - 禁用 dotnet core 中特定单元测试的 SIMD 指令集
- mongodb - 无法连接到mongodb云
- r - 从文本文件中读取特定列:R
- database - MS Access 2013 - 如何在自动更新的文本框上触发事件
- validation - 如何在 Rust 中验证用户输入并循环直到给出有效输入?