更新记录栏4没有路由匹配“/ admin / usersupdate”
我有这个控制器
def usersedit @user = User.find_by id: params[:id] end def usersupdate @user = User.find_by id: params[:id] if @user.update(post_params) redirect_to action: :users else render 'usersedit' end end
这个表单在usersedit.html.erb的视图中
但是当我提交表单时,会出现此错误
No route matches [PATCH] "/admin/usersupdate"
我的路线代码是:
Prefix Verb URI Pattern Controller#Action root GET / pages#home admin_index GET /admin/index(.:format) admin#index admin_grades GET /admin/grades(.:format) admin#grades pages_home GET /pages/home(.:format) pages#home pages_register GET /pages/register(.:format) pages#register pages_create POST /pages/create(.:format) pages#create pages_login GET /pages/login(.:format) pages#login pages_logging POST /pages/logging(.:format) pages#logging pages_logout GET /pages/logout(.:format) pages#logout GET /activate/:user/:hash(.:format) pages#activate remember POST /remember(.:format) pages#remember reactivation POST /reactivation(.:format) pages#reactivation admin_documents GET /admin/documents(.:format) admin#documents admin_users GET /admin/users(.:format) admin#users GET /admin/usersedit/:id(.:format) admin#usersedit admin_usersupdate POST /admin/usersupdate(.:format) admin#usersupdate
请帮忙。
更改表单方法中的方法:: post
你的表格标题
form_for :user, url: {action: "usersupdate"}, :method => :POST do |f|
我遇到了同样的问题,你需要正确更新你的routes.rb文件。
我猜你的路线文件中你已定义此路径的行以“post”开头,尝试将其更改为“patch”。
在config / routes.rb里面
更改:
post "admin/usersupdate" => "admin#usersupdate", :as => "admin/usersupdate"
至:
patch "admin/usersupdate" => "admin#usersupdate", :as => "admin/usersupdate"
在我做出这个改变之后,一切都在为我而游泳。
您使用POST
定义了路由,但在表单中使用了PATCH
。