2011-10-15 2 views
0

Je souhaite mettre à jour un décompte de votes par javascript.jquery update, variable locale non définie

Mon action show:

<%= render :partial => @car.reviews %> 

La révision partielle a:

<p id="review_<%= review.id%>"><%= pluralize(review.votes_count, 'vote') %> 

votes/create.js.erb

$("review_<%= review.id %>").html("<%= pluralize(review.votes_count, 'vote') %>"); 

Le vote s'affiché sans aucun problème. Mais le javascript ne fonctionne pas, ActionView :: Template :: erreur (variable locale définie ou méthode `examen »

+0

I Je me demande si l'examen dans le partiel était une variable d'instance puis-je l'utiliser dans le fichier votes/create.js/erb? Est-il possible d'accéder à @review dans le fichier partiel? – chief

+0

Le fichier partiel aura accès à toutes les variables d'instance dans l'action créer/mettre à jour (alias l'action que vous publiez) – Msencenb

+0

Voici ce qui se passe dans le partial: <% @ car.reviews.each do | review |%>. J'ai inclus cette boucle dans create.js.erb avec un message d'alerte et il montre toutes les valeurs la nouvelle valeur correcte. Mais le HTML actuel ne change pas. - L'erreur de variable locale non définie s'est produite quand je n'avais pas la boucle. – chief

Répondre

0

Ainsi, la solution consiste à inclure la boucle dans le fichier .js.erb.

<% @car.reviews.each do |review| %> 
$("#review_<%= review.id %>").html("<%= pluralize(review.votes_count, 'vote') %>"); 
<% end %> 
Questions connexes