Ruby on rails 将字符串从控制器返回到ajax调用的最佳方法

Ruby on rails 将字符串从控制器返回到ajax调用的最佳方法,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我想创建一个返回单个字符串值的操作: def delay_calulation() dr = Dr.find(params[:id]) delay = dr.calc() respond_to do |format| format.json { render json: {"value" => delay}} end end 但我在ajax调用中遇到了一个“失败”: $("#btn_delay").on("click", function () { $.

我想创建一个返回单个字符串值的操作:

def delay_calulation()
  dr = Dr.find(params[:id])
  delay = dr.calc()

  respond_to do |format|
    format.json { render json: {"value" => delay}}
  end
end
但我在ajax调用中遇到了一个“失败”:

$("#btn_delay").on("click", function () {
    $.ajax({
      type: "GET",
      dataType: "script",
      url: "/drs/delay_calulation/1"
    })
    .done(function(response){
        console.log(response);
    })
    .fail(function(response){
        console.log(response);
    });

  });

如何获取单个字符串或类似的内容。

在通过Ajax调用时,需要将id传递给控制器操作。您可以使用控制器中提到的键名来检索字符串

$.ajax({
            url: '/drs/delay_calulation',
            data: {id: (you need to pass the id)},
            type: "get",
            dataType: "json",
            success: function(data){
                       var a = data["delay"]
            },
            failure: function(data){
                var a = data["delay"]
            }
        });

您知道如何将此“1”参数作为数据(如:data{id:1})传递吗?是的,您可以在散列中传递任意数量的以逗号分隔的键和值格式的参数。例子。数据:{id:1}如果我这样做,它会调用“show”操作而不是“delay_calculation”操作。我已经编辑了答案。从URL中删除id。这是文件中声明的顺序。谢谢