在edit.html.erb
文件上创建了scaffold,我没有看到任何代码指定PUT
方法。为什么帖子表单使用PUT
方法调用更新操作。
答案 0 :(得分:4)
form_for
函数会最好地猜测发送表单的位置:
以下面的代码为例:
<% form_for @user do |form| %>
@user
是新记录,它会向POST
发送/users
个请求@user
是现有记录,则会向PUT
发送/users/12
请求(如果12 = @ user.id)答案 1 :(得分:1)
运行时可以看到编辑方法
rake routes
new_account GET /account/new(.:format) {:action=>"new", :controller=>"accounts"}
edit_account GET /account/edit(.:format) {:action=>"edit", :controller=>"accounts"}
account GET /account(.:format) {:action=>"show", :controller=>"accounts"}
PUT /account(.:format) {:action=>"update", :controller=>"accounts"} //this is your method needed
DELETE /account(.:format) {:action=>"destroy", :controller=>"accounts"}
POST /account(.:format) {:action=>"create", :controller=>"accounts"}
<% form_for @user do |form| %> can be <% form_for :user, :url => user_url(:user), :method => :put do |form| %>
答案 2 :(得分:0)
处理更新的标准Rails方法是使用一个编辑模板(您的edit.html.erb),该模板生成一个由用户填写并随后作为HTTP PUT请求提交的表单。您的Rails应用程序应该具有正在更新的资源的模型,其控制器具有“更新”操作以接受表单参数。
如果您想查看PUT请求中发送的数据,可以使用Firebug。