2011-06-25 58 views
0

更新中...軌AJAX表單提交發出

我有我的AJAX表單提交的麻煩。不確定它是否存在路由問題,或者可能是UJS問題。 (使用jQuery 1.6.1和最近的jQuery的UJS)

這是生成的html爲創建行動形式

<form method="post" id="new_product_pressing" data-remote="true" class="simple_form product_pressing" action="/products/my_product_id/product_pressings" accept-charset="UTF-8"> 
    <input type="hidden" value="✓" name="utf8"> 
    <input type="hidden" value="blablablatokenblablabla" name="authenticity_token"> 
    <label for="product_pressing_total_pressed">Total pressed</label> 
    <input type="text" size="5" required="required" name="product_pressing[total_pressed]" id="product_pressing_total_pressed" 
    <input type="submit" value="Create Pressing" name="commit" id="product_pressing_submit"> 
</form> 

更新操作形式是有效的爲好,但可能重複張貼

我的路線是:

resources :products, :shallow => true do 
    resources :product_pressings, :as => :pressings, :only => [:create, :update] 
end 

product_pressings POST /products/:product_id/product_pressings(.:format) {:action=>"create", :controller=>"product_pressings"} 
pressing   PUT /product_pressings/:id(.:format)     {:action=>"update", :controller=>"product_pressings"} 

爲創建行動...日誌顯示:

Started POST "/products/product-057/product_pressings" for 127.0.0.1 at... 
Processing by ProductPressingsController#create as JS 
Parameters: {"product_id"=>"my_product_id"} 

如果我刪除遠程真,"product_pressing"=>{}參數通過,但不與:remote => true。

用於更新...

Started POST "/product_pressings/4e01ad24e1607cc46100008e" for 127.0.0.1 at... 
ActionController::RoutingError (No route matches "/product_pressings/4e01ad24e1607cc46100008e"): 

拋出一個路由錯誤,即使它的節目的完整網址和方法而無需遠程=>真。這是工作,我不知道什麼時候停止,但我不明白什麼可能會導致此行爲。

+0

這是一個創建或更新操作?它在新的/編輯表單中的工作方式是否相同? – tamersalama

+0

我看不到任何csrf標記... – apneadiving

回答

0

發現問題。我的錯。我使用名爲$ .param和$ .params的插件擴展了jquery。這顯然與jquery ujs衝突。追蹤並不容易,但必須重新命名。問題解決了。