作为可选择的AJAX刷新按钮,没有刷新页面Ruby on Rails

时间:2015-02-19 16:50:06

标签: javascript ruby-on-rails ajax haml

我试图让我的投票计数使用javascript更新计数,因此整个页面都没有重新加载。目前它只执行一次,但是如果不刷新页面,则无法再次单击该按钮。如何在没有刷新页面的情况下单击“喜欢”按钮来持续喜欢和不同于引脚?

pins_controller.rb:

def upvote
    @pin.upvote_by current_user
    respond_to do |format|
        format.html {redirect_to :back }
        format.json { render json: { count: @pin.get_upvotes.size } }
    end
end

def un_upvote
    @pin.unliked_by current_user
    respond_to do |format|
        format.html {redirect_to :back }
        format.json { render json: { count: @pin.get_upvotes.size } }
    end
end

index.html.haml:

- if current_user.voted_for? pin
    = link_to unlike_pin_path(pin), method: :put, :remote => true, class: "btn btn-default vote", data: { type: :json } do
        %span.glyphicon.glyphicon-heart
            =pin.get_upvotes.size
- else
    = link_to like_pin_path(pin), method: :put, :remote => true, class: "btn btn-default vote", data: { type: :json } do
        %span.glyphicon.glyphicon-heart
            =pin.get_upvotes.size

:javascript 
 $('.vote')
 .on('ajax:send', function () { $(this).addClass('loading'); })
 .on('ajax:complete', function () { $(this).removeClass('loading'); })
 .on('ajax:error', function () { $(this).after('<div class="error">There was an issue.</div>'); })
 .on('ajax:success', function (e, data, status, xhr) {
 $(this).find("span").text(data.count);
});

0 个答案:

没有答案