рельсы вопросы представления формы AJAX - PullRequest
0 голосов
/ 25 июня 2011

ОБНОВЛЕНО ...

У меня проблемы с отправкой формы в 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"}

если я удалю значение true, параметры "product_pressing"=>{} будут переданы, но не с помощью: remote => true.

для обновления ...

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

выдает ошибку маршрутизации, даже если она показывает точный URL и метод как без remote => true. это работало, и я не уверен, когда это прекратилось, но я не понимаю, что могло вызвать такое поведение.

1 Ответ

0 голосов
/ 27 июня 2011

обнаружил проблему. моя вина. Я расширил jquery с помощью плагинов с именами $ .param и $ .params. это противоречило jquery ujs, по-видимому. это было нелегко отследить, но просто пришлось его переименовать. проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...