$.ajax() jquery et CREATE


#1

Bonjour,

Je veux ajouter des favoris en ajax. Voici mon code :

///////// code javascript ///////////

$(".add_favoris").live(‘click’,function(){
var id;
id = $(this).attr(“rel”);
$.ajax({
type: “POST”,
url: ‘<%= favoris_url() %>’,
data: { announcement_id : id, account_id : “<%= current_account.id
%>”, _method: ‘post’ },
success: displaySucces,
error: displayError
});

////////// favoris_controller //////////
def create
@favori = Favori.new(params[:favori])

respond_to do |format|
  if @favori.save
    flash[:notice] = "<div class='notice'>Favoris was successfully

added."
format.html { redirect_to(@favori) }
format.js { redirect_to(@favori) }
format.xml { render :xml => @favori, :status => :created,
:location => @favori }
else
format.html { render :action => “new” }
format.js { render :action => “new” }
format.xml { render :xml => @favori.errors, :status =>
:unprocessable_entity }
end
end

Mon code fonctionne car j’arrive à ajouter un favoris mais comme vous
pouvez le voir sur la capture d’écran un nouveau favoris est créé mais
aucune donnée n’est entrée.

Il y a forcément un truc qui m’échappe. Quelqu’un peut-il m’aider ?


#2

Ce ne serait pas a cause d’une valeur authenticity_token a ajouter dans
les données post ?


#3

Vérifie le résultat de ta requête dans les logs , et dans la base
donnée.

Le 23 avril 2010 16:53, Thomas T. removed_email_address@domain.invalid a
écrit
:


#4

Cédric Brancourt wrote:

Vérifie le résultat de ta requête dans les logs , et dans la base
donnée.

Je viens de vérifier et aucune donnée n’est prise en compte.
J’ai fais des test en passant dans l’ajax l’url : <%= favoris_url() %>,
<%= favoris_url() %>/new et <%= favoris_url() %>/create.

Il y a bien un nouveau favoris de créé mais avec aucune donnée dedans.


#5

Je te donne un indice;
Ça viens de cette partie :

data: { announcement_id : id, account_id : "<%= current_account.id

%>",

Regarde bien L’api rails, et la manière dont il reconnaît
l’enregistrement
ou le formulaire expédié.
Ici dans les paramètres que tu renvoie rien n’indique a

@favori = Favori.new(params[:favori])

un quelconque params[“favori”].
les attribut que tu en envoie ne sont pas imbriqués dans un objet
“favori”.

Le 27 avril 2010 11:51, Thomas T. removed_email_address@domain.invalid a
écrit
:


#6

Cédric Brancourt wrote:

Je te donne un indice;
Ça viens de cette partie :

data: { announcement_id : id, account_id : "<%= current_account.id

%>",

Regarde bien L’api rails, et la manière dont il reconnaît
l’enregistrement
ou le formulaire expédié.
Ici dans les paramètres que tu renvoie rien n’indique a

@favori = Favori.new(params[:favori])

un quelconque params[“favori”].
les attribut que tu en envoie ne sont pas imbriqués dans un objet
“favori”.

Le 27 avril 2010 11:51, Thomas T. removed_email_address@domain.invalid a
écrit
:

Mais oui !!!
Alalalalala je me désole ! :frowning:
Merci Cédrix pour cette réponse qui est la bonne.