我知道有很多關於路由錯誤的意見,但即使經過其中的許多人,並查看路由指南,我無法找出我的問題。路由錯誤 - 沒有路由匹配的AJAX呼叫
我創建了一個Ajax的提交表單的像 -
$('#user_time_zone').live('change', function() {
$(this).parents('form:first').submit();
});
然而,在事件中,我收到路由錯誤
No route matches '/user/time_zone'
我爲這樣的節目路線
user_time_zone POST /user/time_zone(.:format) {:controller=>"user", :action=>"time_zone"}
在路線文件我有類似的條目 -
match 'user/time_zone' => 'user#time_zone', :via => [:post]
我可能會做錯什麼。
實際上,_method = put形式存在隱藏字段。這是由Rails代碼生成的。我聲明瞭form - form_for(@user,:url => user_time_zone_path,:method =>:post,:remote => true)do | f | 。我如何刪除它。也許我在這裏做錯了什麼。生成的表單有一個CSS類edit_user。我也使用Devise,所以也添加了一些/ user/*類型的路由。 –
更新:我已經通過匹配'user/time_zone'=>'user#time_zone',:via => [:put]將路由中的HTTP方法更改爲PUT,並且它似乎正常工作。謝謝 –
我不知道爲什麼手動將隱藏的div爲我工作。也許阿賈克斯加載表單構建器部分混亂了事情。謝謝你的提示。 –