2014-03-19 63 views
1

我有一些JSON:Ruby on Rails的:获取JSON从控制器JavaScript文件在我的控制器

votes_controller.rb:

def create 
    ... 
    vote_status = current_user.user_votes.pluck(:recipient_uid).include?(@user.uid) 
    render json: vote_status 
end 

我需要得到vote_status在JavaScript文件

votes.js:

jQuery(function($) { 
    $(".doWant").click(function() { 
    var status = vote_status.evalJSON(); 
    var uid = $(this).parents("#dialog")[0]; 
    var username = $(this).parents("#dialog")[0]; 
    if(confirm("Are you sure?")) { 
     $.ajax({ 
     url: '/votes' + "?uid=" + $(uid).attr("data-user-uid") + "&username=" + $(username).attr("data-user-username"), 
     type: 'POST', 
     success: function(data) { 
      console.log(data) 
     } 
     }); 
    }; 
    }); 
}); 

但是有一个错误Uncaught ReferenceError: vote_status is not defined。我究竟做错了什么?

谢谢!

+0

如何/何时调用'votes_controller'动作? –

+0

@PaulRichter,编辑 –

+0

其中** **的状态= vote_status.evalJSON(); **定义的** vote_status **? – xiaoboa

回答

2

vote_status在返回成功json回调,初始化那里的状态

$.ajax({ 
    url: '/votes' + "?uid=" + $(uid).attr("data-user-uid") + "&username=" + $(username).attr("data-user-username"), 
    type: 'POST', 
    success: function(data) { 
     var status = JSON.parse(data); 
    } 
    }); 
3

你没有定义这个变量:

var status = vote_status.evalJSON(); 

必须定义一个变量。

这很可能是你打算用于代码进入success功能,从AJAX调用返回的数据作为该函数的第一个参数:

success: function(data) { 
    console.log(data) 
} 
+0

但我该如何定义这个变量?我需要从'votes_controller'获取json的值 –

+1

@Gvcci'data'变量包含呈现的'vote_status'数据。 –