2009-07-20 22 views
2
<% form_ tag user_path(@user), :method => :put do %> 

これは私のフォームなので、私のUsersControllerの更新メソッドにアクセスするにはmap.resources:usersとRESTfulなパスを設定します:だから、明らかに私はこの作業を行う方法がわからないRails、put httpメソッドを使用しようとしている形式の問題

Unknown action 

No action responded to 1. Actions: create, destroy, edit, index, logged?, new, show and update 

users  GET /users(.:format)   {:action=>"index", :controller=>"users"}   
      POST /users(.:format)   {:action=>"create",:controller=>"users"} 
new_ user GET /users/new(.:format)  {:action=>"new", :controller=>"users"} 
edit_user GET /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"} 
user  GET /users/:id(.:format)  {:action=>"show", :controller=>"users"} 
      PUT /users/:id(.:format)  {:action=>"update", :controller=>"users"} 
      DELETE /users/:id(.:format)  {:action=>"destroy", :controller=>"users"} 

だから私は、PUTのHTTPメソッドを使用してUSER_PATH(@user)に送信しようとすると、それはして戻ってきますだから前もって感謝します。

答えて

1

ちょうど暗闇の中で撮影しましたが、これを試しましたか?

<% form_tag :url=>user_path(@user), :html=>{:method=>:put} do %> 
+0

更新リンクPUTされる旨の隠し入力してPOSTを使用するように、すべてのブラウザはPUTをサポートしていませhttp://guides.rubyonrails.org/form_helpers.html#how-do-forms-with-put-or-delete-methods-work

をこれをチェックするには遅すぎます。http://guides.rubyonrailsを.org/form_helpers.html#how-do-forms-with-patch-put-or-delete-methods-work-questionmark –

6

あなたがRESTfulなリソースを使用している(そしてあなたがする必要があります)した場合、このような完全なセットアップで... form_forないform_tagを使用してみてください:

<% form_for :user, @user, :url=>user_path(@user), :html=>{:method=>:put} do |f| %> 

    #this scopes the form elements to the @user object, eg. 
    <%= f.text_field :first_name %> 

<% end %> 

多くのためのAPI docsをチェックしてください。

0

サーバーを再起動しましたか?私のroutes.rbは、サーバが動作している間に更新すれば正しくロードされることはありません。

0

テーブルレスモデル(Rails model without database)を使用しようとすると、この問題が発生しました。

アクションパックのform_helper.rbをすばやく掘り下げた後、解決策が見つかりました。お使いのモデルにこれを追加します。

def new_record?; false; end 

私の場合は私のモデルでは、これは既存のオブジェクトとして扱いに「トリック」のRailsに必要だったので、常にゼロから構築され、したがって、PUTで​​はなくPOSTを行っています。

2

答えていますが、この方法は

関連する問題