J'ai un système de vote. Lorsqu'un utilisateur clique sur le bouton "Vote", la valeur du vote est incrémentée de un.Champ de mise à jour sans redirection
Mais le problème est, cette action d'incrément nécessite une redirection que je ne veux pas faire. J'utilise will_paginate pour paginer mes enregistrements. Pour exemple, si un utilisateur a voté pour une entité à la page 2 de la liste paginé, il doit rester à la page 2. Mais, actuellement, il redirige à la page 1.
Vu que j'ai:
<ol>
<% for number in @numbers%>
<li>
<%=number.value%>
<%=button_to '+1',:action=>:increment,:id=>number.id,:remote=>true%>
</li>
<%end%>
</ol>
<%=will_paginate @numbers%>
Dans le contrôleur je:
def increment
number=Digit.find(params[:id])
number.increment!(:value)
end
Mais quand je ne réorientent pas, je reçois cette erreur:
Missing template digits/increment with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "c:/Sites/tester/app/views"
Merci Mike.C'était fantastique !! –
Mais, ce serait génial si cette mise à jour se produisait comme une tâche de fond. Par exemple, disons que le bouton de vote est destiné à une vidéo qui est en train de jouer dans un popup.Il serait génial si le vote est incrémenté, mais la vidéo continue à jouer Je pensais: à distance => vrai ferait cela.Pouvez-vous me pointer dans la bonne direction? –
Rechercher une requête Ajax avec des rails. Vous avez raison de faire: remote => true dans la vue, mais votre contrôleur doit être capable de gérer cette requête. –