0

ジェム "Thumbs_up" を使用して Applivation RoR に投票を追加したいのですが、"vote_up" または "vote_down" をクリックしても何も起こりません。

  = 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 に答える