2011-02-09 4 views
1

ルーティングに関する問題があります。form_tagを使用したルーティングエラー

私は期待通りに動作するすべてのrestfullアクションを持つプロジェクトリソースを持っています。

ここで、特定の属性を小さなポップアップフォームで更新する機能を追加します。したがって、このポップアップで私は以下を使用します:

form_tag (@project) do 
    text_field_tag :attribute_i_want_to_update, '' 
    submit_tag 'go' 

私はこの特定のサブミットを処理するつもりです。しかし、 '/ projects/15'へのルートがないとのルーティングエラーが表示されます。リクエストがPOSTを使用していることを確認しました。明らかに、 '/ projects/15'へのPOSTのルートが存在します(通常の更新ルートは正常に動作し、その正確なルートに投稿されます)。

私には何が欠けていますか?お時間を

Thxを、
アーウィン

答えて

0

私は同様の問題があった、オブジェクトがない場合にはそれをhere

を見ます新しい場合、レール(少なくとも3つはこれを行います)はPUTルートではなくPUTルートを探します。 Firebugを使って実際にサーバに送信されたものをチェックすると、POSTが行われているが、パラメータが "_method = put"であることがわかります。

Railsは、FieldingのRESTの定義に従って、既存のオブジェクトを更新するPUTルートを探します。

+0

それはthxだった! – ErwinM

2

あなたはPUTリクエストとして指定しようとしたことがあり:

 
form_tag(@project, :method => :put) do 
    text_field_tag :attribute_i_want_to_update, '' 
    submit_tag 'go' 
関連する問題