質問

私はこれを行う場合:

curl -X POST -H 'Content-type: application/xml' -d '<person>...</person>' 'http://0.0.0.0:3000/people/12?_method=PUT'

私は "のみ、GET、PUT、および要求が許可されて削除します。" を取得しますどうして? Railsの2.3.2

役に立ちましたか?

解決 2

これは実際には、レールの最近のバージョンでは誤動作しています。溶液は、PUTとHTTPメソッドのオーバーライドヘッダーを通過させることです。重要:ヘッダーの完全な名前は、その部分をトリミングする必要がありますので、HTTP-X-HTTP-メソッドのオーバーライドが、レールのhttp接頭辞を追加しています。

他のヒント

ルカが正しい、あなたはあなたの要求でX-HTTP-Method-Overrideヘッダーを送信する必要があります。 JSONボディに入れて置く_methodは=私のために動作しませんでした。あなたのcurlコマンドラインは次のようになります。

 curl
  -H "X-Http-Method-Override: put"
  -H "Content-Type: application/json"
  -d "{\"user\":{\"email\":\"blah@example.com\"}}"
  www.site.com/users/username.json

間違って行くことができ、物事のカップルがあります。

まず最初に、あなたはPOSTcurlを送っているが、あなたはあなたのURLの「魔法」_methodパラメータを持っている、そしてPUTに設定しています。 Railsは権威要求タイプとしてPOSTを取っているようなエラーに基づいて、それが聞こえます。それなしでそれを試してみて、何が起こるか見ています。

より多くの歩行者のエラーで、config/routes.rbにおけるルーティングは(あなたが使用しようとしているアクションのためのPOST要求を許可しないように構成することができます。

あなたは、デフォルトでのみ/people/12GET、およびPUTを可能にするメンバー(DELETE)にアクセスしているので、良い理にかなっている標準のRESTfulなコントローラを、使用している場合。

私はcurl -X PUTを使用し、あなたの要求から?_method=PUTをドロップしようとするだろう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top