简体   繁体   English

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

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

in my controller I've some json: 在我的控制器中,我有一些json:

votes_controller.rb: tickets_controller.rb:

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

I need to get vote_status in javascript file 我需要在javascript文件中获取vote_status

votes.js: 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)
        }
      });
    };
  });
});

But there is an error Uncaught ReferenceError: vote_status is not defined . 但是存在错误Uncaught ReferenceError: vote_status is not defined What am I doing wrong? 我究竟做错了什么?

Thanks! 谢谢!

You're not defining this variable: 您没有定义此变量:

var status = vote_status.evalJSON();

You must define that variable. 您必须定义该变量。

It seems likely that you intended for that code to go into the success function, which returns the data from the ajax call as the first argument in that function: 您似乎希望使该代码进入success函数,该函数将从ajax调用返回的数据作为该函数中的第一个参数:

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

The vote_status is returned in success json callback, init the status there 在成功的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.

相关问题 如何将 json 数据从 ruby controller 传递到 javascript(导轨)? - How to pass json data from ruby controller to javascript (Rails 6.1)? 从Rails上的javascript ruby​​调用控制器方法 - call a controller method from javascript ruby on rails 从控制器Ruby on Rails 3.2.9调用JavaScript - Calling javascript from controller Ruby on Rails 3.2.9 如何使用JavaScript来解析从Ruby on Rails控制器返回的多个JSON对象 - How to use JavaScript to parse multiple JSON objects returned from Ruby on Rails controller Ruby on Rails - 将JavaScript变量从控制器发送到外部Javascript资产文件 - Ruby on Rails - Send JavaScript variable from controller to external Javascript asset file 将 JSON 对象从 rails 控制器发送到 Javascript - Send JSON object from rails controller to Javascript 从 Rails 控制器中的 Javascript 对象获取值 - Get values from Javascript object in Rails controller 将Ruby on Rails控制器中的值传递到Javascript中进行渲染 - Passing values from a Ruby on Rails controller into Javascript to render Ruby on Rails如何将数据从控制器传递到html中的javascript - Ruby on Rails how to pass data from controller to javascript in html 将JavaScript从Rails控制器加载到javascript文件中的d3 .defer()函数 - load JSON from rails controller to d3 .defer() function within javascript file
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM