Как я могу динамически обновить счетчик голосов с помощью Ajax / JavaScript (Rails)? - PullRequest
4 голосов
/ 05 февраля 2012

Я построил простую систему голосования:

votes_controller.rb:

class VotesController < ApplicationController
  def vote_up
    @post = Post.find(params[:id])
    @vote = @post.votes.create(:user_id => current_user.id, :polarity => 1)
  end
end

(Если здесь есть плохая практика, пожалуйста, дайте мне знать)

Вид / show.html.erb:

<h3><%= @post.votes.count %> votes</h3><br />

<%= link_to "Vote Up", vote_up_path(@post), :remote => true %>

(я поставлю это в частичную часть конечно)

routes.rb:

get 'votes/:id/vote_up' => 'votes#vote_up', as: 'vote_up'

Когда я нажимаю ссылку "Проголосовать", к сообщению добавляется голос, но мне нужно обновить страницу, чтобы увидеть изменения. Как я могу динамически обновлять @post.votes.count и vote.user.username с помощью Ajax / JavaScript?

1 Ответ

5 голосов
/ 05 февраля 2012

Сначала поставьте make div для show.html.erb

<div class='post-<%=@post.id%>' >
 <h3><%= @post.votes.count %> votes</h3><br />
 <%= link_to "Vote Up", vote_up_path(@post), :remote => true %>
</div>

и в voice_up.js.erb

$("post-<%=@post.id%>").html('<%=escape_javascript @post.votes.count %>');

или что-то вроде этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...