Rails出现以下错误:
No route matches [POST] "/users/32"
即使路线,视图和控制器设置正确。我缺少什么?
环境:Rails 3.2.12,Ruby 2.0.0p0
路线
Foo::Application.routes.draw do
resources :users
match '/pages/:action', controller: "pages", as: "pages"
root to: 'pages', action: 'index'
end
耙路线
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
pages /pages/:action(.:format) pages#:action
root / pages#index
Haml的
= form_tag "/#{@collection_name}/#{@entity.id}", :method => :put do
...
哪个被转换成这个html
<form accept-charset="UTF-8" action="/users/32" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
<input name="_method" type="hidden" value="put">
<input name="authenticity_token" type="hidden" value="NnD8tNkx//5o3TQWhBYxFgYGS8kG9n+7WSeA0mon9t8=">
</div>
...
答案 0 :(得分:1)
我有一个show user页面,它显示一个带有禁用输入的表单,其中显示了所有用户数据。
有一个按钮可以启用所有字段并允许编辑用户。此按钮由一些JavaScript代码处理,并在所有表单输入元素上切换“disabled”属性。
由于_method
和所有魔术Rails表单属性也是输入,因此我的JavaScript代码会在其上添加disabled
属性,因为它们没有。{/ p>
课程:不要使用JAVASCRIPT处理所有表单输入,RAILS依赖于其中某些内容。