Обратные вызовы jQuery UJS Rails не срабатывают - PullRequest
6 голосов
/ 20 июня 2011

Я пытаюсь вызвать обратный вызов ajax: success для удаленной ссылки.Я на Rails 3.0.8 и jquery-rails 1.0.11.Я запустил генератор jquery для установки javascripts.И jquery, и jquery_ujs включены в мои значения по умолчанию, и я могу убедиться, что они включены на страницу.

Вот мой javascript:

jQuery(function($) {
  $("#deactivate")
    .bind("ajax:success", function() {
      alert("HELLO");
    })
    .bind("ajax:error", function() {
      alert("GOODBYE");
    }
  );
});

Ссылка:

= link_to 'Deactivate', activate_patient_path(patient), :id => 'deactivate', :class => "button button-red", :remote => true

Действие активации:

def activate
    patient = Patient.find(params[:id])
    patient.do_not_call = !patient.do_not_call
    if patient.save
      render :nothing => true
    else
      render :status => 500, :nothing => true
    end
end

Кажется, что вызов ajax работает нормально.Действие запущено, и я вижу изменения в базе данных.Однако обратные вызовы AJAX не запускаются.Я не могу заставить никого из них работать.Я могу заставить другие события, такие как щелчок, работать отлично.

Если я отлаживаю rails_ujs в Firebug, я вижу, что следующий код запускается из блока ajax Rails:

success: function(data, status, xhr) {
  element.trigger('ajax:success', [data, status, xhr]);
}

IЯ в тупике.Есть идеи?

1 Ответ

12 голосов
/ 29 июня 2011

убедитесь, что вы не включаете jquery.js снова после rails.js ... Я столкнулся с подобной проблемой, когда jquery.js был включен дважды, а rails.js был включен между ними.

...