我有以下代码:
= link_to "#{icon('heart')} Props".html_safe, vote_picture_path(picture), class: 'tiny radius secondary button vote', method: :put, remote: true
这里是:
# VOTE /pictures/1.json
def vote
respond_to do |format|
if @picture.toggle_vote(current_user)
format.json { render json: @picture }
else
format.json { render json: @picture }
end
end
end
我想做的是通过以下方式更新图片的总票数:
$ ->
$(".vote").on "ajax:success", (e, data, status, xhr) ->
vote_count_size = $(".vote-count .size").html()
vote_count_size_integer = parseInt(vote_count_size)
console.info data
然而,让我感到困惑的部分是 console.info 数据。它似乎从我不知道的来源返回了一些东西。我正在编辑/pictures/show.json.jbuilder 但它不会影响来自数据的内容。我想返回一个包含数据中总票数的 json 结构,这样我就可以从成功回调中更新页面上的计数。
最佳答案
首先,您的 respond_to
block 可以显着重构:
# VOTE /pictures/1.json
respond_to :json
def vote
@picture.toggle_vote(current_user)
respond_with @picture
end
这应该为您的 @picture
变量返回一个 JSON 对象。您必须详细说明您在 console
中获得的数据?如果您提供您收到的数据,那将是一个巨大的帮助!
关于javascript - 如何在 Rails 4 中正确处理远程链接? JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822739/