2011-06-25 4 views
0

MISE À JOUR ...rails la soumission du formulaire ajax délivre

je ne parviens pas à mes soumissions de formulaire ajax. pas sûr si c'est un problème de routage, ou peut-être un problème UJS. (En utilisant jquery 1.6.1 et les plus récents jquery-UJS)

c'est le code HTML généré pour l'action create forme

<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> 

la forme d'action de mise à jour est valable aussi bien, mais probablement redondant pour poster

mes itinéraires sont:

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"} 

pour l'action de créer ... le journal indique:

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"} 

Si j'efface la télécommande true, les paramètres "product_pressing"=>{} sont transmis, mais pas avec: remote => true.

pour la mise à jour ...

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

génère une erreur de routage, même si ses spectacles l'url exacte et méthode que sans distance => true. cela fonctionnait, et je ne sais pas quand il s'est arrêté, mais je ne comprends pas ce qui pourrait causer ce comportement.

+0

Est-ce une action de création ou de mise à jour? Est-ce que cela fonctionne de la même manière dans les deux nouveaux formulaires? – tamersalama

+0

Je ne vois aucun jeton csrf ... – apneadiving

Répondre

0

trouvé le problème. ma faute. J'avais étendu jquery avec des plugins nommés $ .param et $ .params. c'était contradictoire avec jquery ujs apparemment. Ce n'était pas facile à traquer, mais il fallait juste le renommer. problème résolu.

Questions connexes