Je suis nouveau sur les rails si désolé si parfois je n'ai pas beaucoup de sens. Voici ce que j'essaie de faire. J'essaie de construire un système de vote. Donc, à côté d'un article de blog, il y a un lien qui dit «vote» (dira probablement comme plus tard). Jusqu'ici j'ai travaillé: quand le bouton de vote est cliqué, une valeur de '1' est livrée à la table de vote et alors que les affichages de vote de messages particuliers s'affichent sous le vote via AJAX (j'ai copié une fonctionnalité de commentaire). Au lieu de rendre tous les nombres '1' ci-dessous, je veux qu'il rende le compte mis à jour.Afficher le nombre de dossiers - Ruby on Rails - Ajax
Mon tableau de vote contient les colonnes 'vote' et 'post_id' qui ont bien été entrées. Ma pensée était que je pourrais juste changer mon modèle partiel pour faire ceci. Voici le code:
votes_controller:
class VotesController < ApplicationController
def create
@post = Post.find(params[:post_id])
@vote = @post.votes.create!(params[:vote])
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
end
def count
@post = Post.find(params[:post_id])
@vote = calculate :count
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
end
Voici la page où est est affiché, /posts/show.html.erb:
<div id="backto"<%= link_to 'Back to all BattleCries', posts_path %></div>
<%= render :partial => @post %><br/>
<p5>Add a Comment</p5>
<div id="belt">
<div id="belttext">
<% remote_form_for [@post, Comment.new] do |f| %>
<p>
<%= f.text_area (:body, :class => "commentarea") %>
</p>
<%= f.submit "Add Comment"%>
<% end %>
</div>
<div id="beltbottom">
</div>
</div><br/>
<br/><p5>Comment Stream </p5>
<div id="comments">
<%= render :partial => @post.comments %>
</div>
<p>
<% remote_form_for [@post, Vote.new] do |f| %>
<p>
<%= f.hidden_field :vote, :value => '1' %>
</p>
<%= f.submit "Vote" %>
<% end %>
<div id="vote">
<div id="votes">
<%= render :partial => @post.votes %>
</div>
</div>
</p>
Voici le: partiel/votes/_vote.html.erb: (c'est là que je pensais que je devrais juste le changer pour voter.count, ou post.count ou quelque chose, mais ne peut pas le faire fonctionner).
<% div_for vote do %>
<%= h(vote.vote) %>
<% end %>
Voici le fichier /votes/create.js.rjs:
page.insert_html :bottom, :votes, :partial => @vote
page[@vote].visual_effect :highlight
J'espère que tout cela est logique.
il ne fait que le répéter. 3 – bgadoci