0

我想用宝石“Thumbs_up”为我的应用程序 RoR 添加投票,但是当我点击“vote_up”或“vote_down”时,什么也没有发生,我不知道我在 viex 中的问题是:

  = javascript_include_tag 'votecount'
        = t "idea.colaboration.accept.what_do_you_want_html", user: @collab.user.name
        .buttons[style="float:right"]
          button[type="submit"]
           = link_to image_tag('thumb_up.png'), vote_up_idea_path(@idea), data: {vote: "up"}, remote: true,:method => :post
          button[type="submit"]
           = link_to image_tag('thumb_down.png'), vote_down_idea_path(@idea), data: {vote: "down"}, remote: true,:method => :post

在“votecount.js”中,我有:

$(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: "/idea/vote_up?id="+theid,
            success: function(){
                        $("#votewrapper").unblock();
                        }   
               });
    } else {
         $.ajax({
            type: 'PUT',
            url: "/idea/vote_down?id="+theid,
            success: function(){
                        $("#votewrapper").unblock();
                        }   
               });
    }
})

(每个用户都可以为一个想法投票,非常感谢

4

1 回答 1

0

检查您的日志。据我所知,Rails 在您之前捕获了请求,因此请求可能正在发生,但是您的自定义 javascript 为时已晚。

这是因为您已remote: true在链接中指定。这意味着 Rails(带有jquery_ujs,自动包含在内)会将此链接作为 AJAX 请求执行。

remote: true如果您想自己处理请求,请忽略;或者挂钩到 Rails 发出的 AJAX 请求。

只是一个想法(凭心而论,所以可能不对):

$('a[data-vote]').bind('ajax:beforeSend', function() {
  // something
});
于 2012-04-30T15:04:14.823 回答