Kal*_*son 4 ruby ruby-on-rails ruby-on-rails-4
我有这个控制器
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
Run Code Online (Sandbox Code Playgroud)
这个表单在usersedit.html.erb的视图中
<%= form_for :user, url: {action: "usersupdate"}, method: :patch do |f| %>
Run Code Online (Sandbox Code Playgroud)
但是当我提交表单时,会出现此错误
No route matches [PATCH] "/admin/usersupdate"
Run Code Online (Sandbox Code Playgroud)
我的路线代码是:
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
Run Code Online (Sandbox Code Playgroud)
请帮忙.
Dan*_*nas 15
更改表单方法中的方法:: post
你的表格标题
form_for :user, url: {action: "usersupdate"}, :method => :POST do |f|
Run Code Online (Sandbox Code Playgroud)
skp*_*rin 11
我有同样的问题,你需要正确更新routes.rb文件.
我猜你的路线文件中你已定义此路径的行以"post"开头,尝试将其更改为"patch".
在config/routes.rb里面
更改:
post "admin/usersupdate" => "admin#usersupdate", :as => "admin/usersupdate"
Run Code Online (Sandbox Code Playgroud)
至:
patch "admin/usersupdate" => "admin#usersupdate", :as => "admin/usersupdate"
Run Code Online (Sandbox Code Playgroud)
在我做出这个改变之后,一切都在为我而游泳.
| 归档时间: |
|
| 查看次数: |
23754 次 |
| 最近记录: |