Может быть, такая проблема не нова, но я не нашел ничего подобного. У меня есть такой код jQuery:
$.ajax({
url : ('/people/'+id),
type : 'DELETE',
dataType : 'json',
success : function(e) {
table.getItems(currentPage);
}
});
Контроллер My Rails выглядит следующим образом:
def destroy
@person = Person.find(params[:id])
@person.destroy
respond_to do |format|
format.html { redirect_to(people_url) }
format.json { render :json => @person, :status => :ok }
end
end
Это работает.
Но когда я использую следующее (генерируемое стандартом), обратный вызов success
не вызывается:
def destroy
@person = Person.find(params[:id])
@person.destroy
respond_to do |format|
format.html { redirect_to(people_url) }
format.json { head :ok }
end
end
Протестировано под rails 3.0.3
, jQuery 1.4.2
и Firefox 3.6.13
.
Firebug говорит, что этот запрос запущен и в обоих случаях возвращает 200 OK, элемент также удаляется в обоих случаях. Но во втором случае обратный вызов не вызывается.
Есть ли существенная разница в REST, и есть ли способ использовать jQuery с помощью контроллера леса?