簡體   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