2010-10-29 5 views
3

J'essaie de mettre en place un système de vote un peu comme celui-ci sur Stack Overflow. (En utilisant Rails 3) Je veux que le vote soit fait sans recharger la page, alors je le codeRails: link_to avec: remote => true ne fonctionne pas

link_to("/tags/#{tag.id}/upVote", :remote => true) 

Et dans mon/views/tags J'ai un fichier appelé _upVote.js.erb que je la pensée serait appelée quand ce lien est cliqué, mais ce n'est pas le cas. Il essaie de traiter Upvote comme HTML et ceci est l'erreur que je reçois

manquants balises de modèle/Upvote avec {: formats => [: html]

De plus, voici ce que j'ai en mon fichier de routes

match "tags/:id/upVote" => "tags#upVote" 

Des idées pour que ça marche?

+0

J'ai supprimé la réponse, car ce n'était pas la bonne réponse. – Swanand

Répondre

6

Si vous avez ce message d'erreur dans une nouvelle page vierge, cela signifie que votre appel distant ne fonctionne pas et que l'appel n'a pas été effectué via une requête Ajax. Vous devez vérifier que votre mise en page charge correctement jQuery et le connecteur jQuery Rails disponible ici: http://github.com/rails/jquery-ujs

Ensuite, utilisez Firefox + Firebug pour vérifier que l'appel est réellement un appel Ajax.

0

taper quelque chose comme dans votre rails racine de l'application:

rails g jquery:install 

Et puis, à l'intérieur de votre application.html.erb ajoutez la ligne

<%= javascript_include_tag :defaults %> 

ou explicitement (ne pas oublier d'inclure votre jquery séparément):

<%= javascript_include_tag :rails, :application %> 

[MODIFIER: pour Rails 3.1 ou supérieur utilisant l'asse t pipeline]

Utilisez le gem jquery-rails (comme mentionné ci-dessus) et ajoutez les lignes suivantes au app/assets/javascripts/application.js (si elles ne sont pas déjà):

//= require jquery 
//= require jquery_ujs 

Hope this helps!

Questions connexes