Не запускаются обратные вызовы jQuery UJS Rails

Я пытаюсь запустить обратный вызов 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 не запускаются. Я не могу заставить их работать. Я могу заставить другие события, такие как click, работать безупречно.

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

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

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

6
задан anthonator 20 June 2011 в 01:01
поделиться