2011-11-07 16 views
0

ルーティングエラーについて多くの提案がありましたが、それらの多くを通過してルーティングガイドを見ても、私の問題を把握することはできません。ルーティングエラー - AJAX通話で一致するルートがありません

私のような形のAjaxの提出を作成しました - イベントで、私は、ルーティングエラー

No route matches '/user/time_zone' 
を取得しています、

$('#user_time_zone').live('change', function() {  
    $(this).parents('form:first').submit(); 
}); 

しかし などが示すように

マイルート

user_time_zone POST /user/time_zone(.:format)   {:controller=>"user", :action=>"time_zone"} 

ルートファイルには次のようなエントリがあります。 -

match 'user/time_zone' => 'user#time_zone', :via => [:post] 

私は間違っている可能性があります。

答えて

2

たぶん、あなたは、あなたがdevelopment.logからのリクエストログを投稿してフォームを表示できます隠しフィールドが_method=put

フォームである方法GET
または
でフォームを送信しますか?

+0

実際、フォーム_method = putには非表示フィールドがあります。これはRailsコードによって生成されます。私はフォームを-form_for(@user、:url => user_time_zone_path、:method =>:post、:remote => true)と宣言しました。 。どうすれば削除できますか?たぶん私はここで何か間違っています。生成されたフォームにはCSSクラスedit_userがあります。私はDeviseも使用しているので、/ user/*タイプのルートもいくつか追加しています。 –

+0

アップデート:私は、 'user/time_zone' => 'user#time_zone'、:via => [:put]と一致する経路でHTTPメソッドをPUTに変更しました。ありがとう –

+0

私はなぜ手動で隠しdivを置くのが私のために働いたのか分かりません。おそらくフォームビルダーをロードするajaxは、部分的に物事を混乱させるでしょう。先端に感謝します。 –

0

rake routes 

を実行してみてくださいし、すべてのルートが捕獲されている参照、

を、あなたのルートを貼り付けることができれば、我々はあなたに

感謝を助けることができるかもしれないと

について

sameera

+0

長さのために完全なルートファイルを投稿できませんが、元のメールのレーキルートから取得した関連ルートを指定しています。私はいくつかの/ user/*タイプのルートを追加していますが、deviseを使用していますが、 –

関連する問題