Javascript 投票时不刷新页面并增加页面上的分数

Javascript 投票时不刷新页面并增加页面上的分数,javascript,jquery,css,ruby-on-rails,ruby,Javascript,Jquery,Css,Ruby On Rails,Ruby,到目前为止,这里的其他解决方案还没有奏效。我想让用户投票,投票由控制器处理 def vote story = Story.find(params[:id]) if current_user vote = story.votes.find_or_initialize_by(user: current_user) vote.change_vote!(params[:vote_value].to_i) redirect_to stories_pa

到目前为止,这里的其他解决方案还没有奏效。我想让用户投票,投票由控制器处理

  def vote
    story = Story.find(params[:id])
    if current_user
      vote = story.votes.find_or_initialize_by(user: current_user)
      vote.change_vote!(params[:vote_value].to_i)
      redirect_to stories_path
    else
      redirect_to new_user_session_path
    end
  end
改变你的投票!作为切换,根据投票本身以及之前是否存在投票来增加分数。效果很好

查看部分投票:

<div class="story-votes">
  <div class="vote-container">
    <% if current_user && current_user.voted_on?(story) == 1 %>
      <%= link_to "UP", story_vote_path(story, 1), method: :put %>
    <% else %>
      <%= link_to "up", story_vote_path(story, 1), method: :put %>
    <% end %>
    <div class="vote-count"><%= story.score %></div>
    <% if current_user && current_user.voted_on?(story) == -1 %>
      <span class="vote-down">
        <%= link_to "DOWN", story_vote_path(story, -1), method: :put %>
      </span>
    <% else %>
      <span class="vote-down">
        <%= link_to "down", story_vote_path(story, -1), method: :put %>
      </span>
    <% end %>
  </div>
</div>


您使用
javascript
jQuery
对其进行了标记,这是您所需要的,但没有显示尝试使用它们的示例。您需要做的是让这些链接发出ajax请求并使用jQuery处理响应,但显示您已经尝试过通常是一个好的开始。我遵循了这个示例,但我不知道如何调用vote_ip.js.erb。这是控制器操作的视图。我个人不喜欢使用
js.erb
文件,而是将所需的值作为
Json对象返回,然后解析并适当应用。