我正在使用Rails 4。
我有一個stream
模型,在routes.rb
以下路由代碼:Rails生成更新表單而不是放置
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
對於新流是沒有問題的,導軌產生正確的表格屬性爲create
方法。
我的問題是當我嘗試生成update
的窗體。正如this answer提到的,形式的我的代碼是:
<%= form_for @stream do |f| %>
:
:
<% f.button %>
<% end %>
然而,這就是軌道產生:
<form accept-charset="UTF-8" action="/streams/xxxx" class="edit_stream" id="edit_stream_4" method="post">
正如你所看到的,從某些原因,該方法Rails的選擇是post
代替put
。
我知道我可以手動覆蓋該方法,但我很難相信這是我需要做的。有什麼建議麼?