Peut-être un tel problème n'est pas nouveau, mais je n'ai rien trouvé de similaire. J'ai comme jQuery code:
$.ajax({
url : ('/people/'+id),
type : 'DELETE',
dataType : 'json',
success : function(e) {
table.getItems(currentPage);
}
});
Mon Rails contrôleur ressemble à ceci:
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
C'est le travail.
Mais quand j'utilise la suite (comme généré par le standard), l' success
de rappel n'est pas appelée:
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
Testé sous rails 3.0.3
, jQuery 1.4.2
et Firefox 3.6.13
.
Firebug dit, que la requête est tiré et renvoie 200 OK dans les deux cas, l'élément est supprimé dans les deux cas trop. Mais dans le second cas, le rappel n'est pas appelé.
Est-il une différence significative dans le REPOS, et est-il un moyen d'utiliser jQuery en utilisant le scaffolding contrôleur?