Javascript JQuery+;竖起大拇指进行计票?

Javascript JQuery+;竖起大拇指进行计票?,javascript,jquery,ruby-on-rails,ruby-on-rails-3,voting,Javascript,Jquery,Ruby On Rails,Ruby On Rails 3,Voting,插件: &JQuery 1.5.2(另一个旧gem需要) 当用户在帖子上投票时,我尝试在没有完整HTTP请求的情况下呈现更新的投票计数。目前,它会在每次投票时刷新页面 邮务主任 def vote_up post = Post.find(params[:id]) current_user.vote_exclusively_for(post) respond_to do |format| format.js format.html {rRedirect_to :back}

插件: &JQuery 1.5.2(另一个旧gem需要)

当用户在帖子上投票时,我尝试在没有完整HTTP请求的情况下呈现更新的投票计数。目前,它会在每次投票时刷新页面

邮务主任

def vote_up
  post = Post.find(params[:id])
  current_user.vote_exclusively_for(post)
  respond_to do |format|
    format.js
    format.html {rRedirect_to :back}
  end
end

def vote_down
  post = Post.find(params[:id])
  current_user.vote_exclusively_against(post)
  respond_to do |format|
    format.js
    format.html {redirect_to :back}
  end
end
投票视图(每个post div在左侧有一个投票div(digg/reddit样式),在右侧有内容)


:post,:format=>:js%>
所有的帖子内容,时间戳等等。。。
投票_up.erb.js(在Posts文件夹中)

$(“.votecount”).html(
"");

我在这件事上纠结了一段时间,非常感谢你能提供的任何帮助。我已经看过Jquery railscast并查看了其他Stackoverflow答案,但我对Jquery仍然很不了解。

似乎您希望将视图代码分成多个部分,并且在提供评级时只刷新一个部分

对于控制器,而不是:

respond_to do |format|
    format.js
    format.html {redirect_to :back}
  end
做一些类似于:

render :partial => "voutecount"
在您的视图中,将votewrapper div移出到同一目录中名为“\u votecount.html.erb”的新文件中,并使用以下呈现代码:

 <%= render :partial => "votecount" %>
祝你好运!:)

$.block()
是插件吗?我似乎没有那种方法。
render :partial => "voutecount"
 <%= render :partial => "votecount" %>
<%= javascript_include_tag 'votecount' %>
<a href="" class="ratelink" updown="up" theid="123"><img src = "...."></a>
<a href="" class="ratelink" updown="down" theid="123"><img src = "...."></a>
  $(function(){
        $(".ratelink").click(function(){
            var val = $(this).attr('updown');
            var theid = $(this).attr('theid');
            $("#votewrapper").block({ //blocks rate-rates while processing
                message: null,
                overlayCSS: {
                    backgroundColor: '#FFF',
                    opacity: 0.6,
                    cursor: 'default'
                },
            });
        if (val == "up") {
        $.ajax({
                type: 'PUT',
                url: "/mymodel/voteup?id="+theid,
                success: function(){
                            $("#votewrapper").unblock();
                            }   
                   });
        } else {
             $.ajax({
                type: 'PUT',
                url: "/mymodel/votedown?id="+theid,
                success: function(){
                            $("#votewrapper").unblock();
                            }   
                   });
        }
    })