Javascript 如何正确处理Rails 4中到的远程链接?JSON?
我有以下代码:Javascript 如何正确处理Rails 4中到的远程链接?JSON?,javascript,ruby-on-rails,json,Javascript,Ruby On Rails,Json,我有以下代码: = 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_vo
= 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\u to
块可以进行显著重构:
# VOTE /pictures/1.json
respond_to :json
def vote
@picture.toggle_vote(current_user)
respond_with @picture
end
这将为您的
@picture
变量返回一个JSON对象。您必须详细说明您在控制台中获得的数据?如果你提供你收到的数据,这将是一个巨大的帮助 您应该使用javascript文件(vote.js.erb)进行响应,在该文件中,您可以混合使用javascript和erb表达式来更改所需的页面元素:
$('.vote-count .size').html('<%=@picture.vote_count%> votes');
你能试试bind
而不是上的吗?它会返回这个:我不知道如何返回,因为如果我编辑pictures/show.jbuilder中的内容,它不会影响这个。不确定你是否需要更多信息来完成这项工作?我的困惑是我应该这样做吗?
# VOTE /pictures/1.js
def vote
respond_to do |format|
@picture.toggle_vote(current_user)
format.js
end
end