繁体   English   中英

Ruby on Rails:从JavaScript文件中的控制器获取json

[英]Ruby on Rails: Get json from controller in Javascript file

在我的控制器中,我有一些json:

tickets_controller.rb:

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

我需要在javascript文件中获取vote_status

tickets.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 我究竟做错了什么?

谢谢!

您没有定义此变量:

var status = vote_status.evalJSON();

您必须定义该变量。

您似乎希望使该代码进入success函数,该函数将从ajax调用返回的数据作为该函数中的第一个参数:

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

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

$.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);
    }
  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM