programing

Rails 3 AJAX 원격 폼 콜백

cafebook 2023. 8. 16. 22:36
반응형

Rails 3 AJAX 원격 폼 콜백

레일 2.3.8에서 3.0.0으로 업그레이드 중이라 교체해야 합니다.remote_form_for도우미 통화form_for(@object, :remote=>true).

시몬 칼레티와 함께 따라다녔지만 아약스 콜백을 받을 수 없는 것 같습니다.rails.js발포하기 위해

생성된 HTML은 다음과 같습니다.

<form accept-charset="UTF-8" action="/vendor_shipments" class="new_vendor_shipment" data-remote="true" id="formname" method="post">

테스트 중인 Javascript:

jQuery(function($){ 
   alert('document ready');
   $("#formname")
      .bind('ajax:loading', function() {alert("loading!");})
      .bind('ajax:success', function(data, status, xhr) {alert("success!");})
      .bind('ajax:failure', function(xhr, status, error) {alert("failure!");})
      .bind('ajax:complete', function() {alert("complete!");});
});

'document ready' 경보가 실행되고 Ajax 요청이 성공적으로 실행됩니다(데이터가 서버에 게시됨). 그러나 '는 없습니다.ajax:____반격 사격

내가 뭘 잘못하고 있는 거지?

(가치 있는 것은, 양식 자체가 Ajax를 통해 로드된다는 것입니다.)

와, 그건 엄청난 저녁 낭비였어요.

내가 했던 방식으로, 기본 프로토타입을 실행합니다.rails.js콜백을 연결하지 않습니다.

jQuery 기반으로 변환한 후rails.js(http://github.com/rails/jquery-ujs) 콜백은 정상적으로 작동합니다.

다음과 같이 프로토타입 기반 콜백을 트리거할 수 있습니다.

$('formname').observe('ajax:before', function(){
  ...
});

$('formname').observe('ajax:complete', function(request){
  ...
});

하지만, 나는 생각하지 않습니다.request의 반대 의견ajax:complete콜백에는 응답이 포함되어 있습니다.저는 jQuery에 익숙하며 응답에 액세스하는 것이 간단하기를 바랬습니다.대신, JQuery-Rails로 전환하는 것이 더 쉬울 것 같습니다. 왜냐하면 저는 다음을 대체할 드롭인 프로토타입 코드를 찾을 수 없습니다.:updateRails 2 원격 도우미의 기능.

승인된 답변으로 문제가 해결되지 않으면 여러 jQuery 라이브러리를 포함했는지 확인합니다.저의 경우 두 가지 다른 버전의 jQuery가 내장되어 있었는데 그 중 하나를 제거한 후 모든 것이 정상적으로 작동했습니다.

언급URL : https://stackoverflow.com/questions/3723118/rails-3-ajax-remote-form-call-backs

반응형