Ruby on rails 将Ajax与rails结合使用的正确方法
我正在尝试将ajax添加到投票系统中,但使用jQuery很难针对单个元素。这就是我到目前为止所做的: 索引操作中的投票链接Ruby on rails 将Ajax与rails结合使用的正确方法,ruby-on-rails,jquery,Ruby On Rails,Jquery,我正在尝试将ajax添加到投票系统中,但使用jQuery很难针对单个元素。这就是我到目前为止所做的: 索引操作中的投票链接 <%= link_to post_votes_path(post), :method => 'post', :remote => true do %> <span class="score"><%= post.votes.size %></span> <% end %> 投票中的jQuery#创建视图
<%= link_to post_votes_path(post), :method => 'post', :remote => true do %>
<span class="score"><%= post.votes.size %></span>
<% end %>
投票中的jQuery#创建视图(create.js.erb)
问题是当我点击链接投票时,它会改变所有帖子的html,而不仅仅是我尝试投票的帖子。我对jQuery没有太多经验,所以我忍不住觉得我遗漏了一些明显的东西。有什么想法吗?我通常只使用JQuery的$.post。我正在使用asp.net,但假设rails也可以使用它
$.post("/someurltoyouraction", {myval:val},function(data){
// do stuff after post
});
这将生成一个Ajax post请求。您可以在
{myval:val}
对象中定义post参数以符合您的要求。它本质上是一个基于键值定义的对象{key:value}
所有跨度都有.score类。这就是一切都要改变的原因
这是一个可能的解决办法。
更改您的html:
<span class="score p_<%= post.id%>"><%= post.votes.size %></span>
然后在create.js.erb中进行更改
$('.score').html("I voted");
$('.score.p_<%= @post.id %>').html("I voted");
$('.score.p').html(“我投票”);
$('.score.p_<%= @post.id %>').html("I voted");