ruby-on-rails – Rails使用post而不是put生成更新表单
发布时间:2020-12-17 03:48:54 所属栏目:百科 来源:网络整理
导读:我正在使用Rails 4. 我有一个流模型,在routes.rb中有以下路由代码: namespace :admin do resources :streams,param: :stream_idend 我得到以下路线: admin_streams GET /admin/streams(.:format) admin/streams#index POST /admin/streams(.:format) admin
我正在使用Rails 4.
我有一个流模型,在routes.rb中有以下路由代码: namespace :admin do resources :streams,param: :stream_id end 我得到以下路线: admin_streams GET /admin/streams(.:format) admin/streams#index POST /admin/streams(.:format) admin/streams#create new_admin_stream GET /admin/streams/new(.:format) admin/streams#new edit_admin_stream GET /admin/streams/:stream_id/edit(.:format) admin/streams#edit admin_stream GET /admin/streams/:stream_id(.:format) admin/streams#show PATCH /admin/streams/:stream_id(.:format) admin/streams#update PUT /admin/streams/:stream_id(.:format) admin/streams#update DELETE /admin/streams/:stream_id(.:format) admin/streams#destroy 对于新流没有问题,rails为create方法生成正确的表单属性. <%= form_for @stream do |f| %> : : <% f.button %> <% end %> 但是,这就是rails生成的: <form accept-charset="UTF-8" action="/streams/xxxx" class="edit_stream" id="edit_stream_4" method="post"> 正如您所看到的,从某种原因Rails选择的方法是post而不是put. 我知道我可以手动覆盖该方法,但我发现很难相信这是我需要做的.有什么建议? 解决方法
这是完全正确的.看看这个:
http://guides.rubyonrails.org/form_helpers.html#how-do-forms-with-patch-put-or-delete-methods-work-questionmark 这只是一个Rails的解决方法,并非所有浏览器都支持PUT方法.因此Rails模拟POST方法,但知道它确实是一个PUT. 如果你最好检查你的表单,你会发现一个隐藏的字段,如下所示: <input name="_method" type="hidden" value="put" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |