从Ruby控制器返回布尔值到Ajax调用

时间:2014-04-29 09:13:03

标签: ruby ajax json boolean return

我试图在JSON的帮助下将以下操作中的布尔值返回给Ajax:

CONTROLLER

get "#{$INDEX_BASE_URL}/login" do
  user_id = params[:user_id]

  if ToConfigureUser.check_existence(user_id)
    data = {:bool => 'true'}.to_json
    return data
  else
    data = {:bool => 'false'}.to_json
    return data
  end 
end

我正在使用JSON,但我甚至不确定这是否是最好的做法。

这是Ajax:

AJAX

$.ajax(url,{
        datatype: "json",
        contenType: "application/json; charset=utf-8",
        type: "GET",
        data:{
            'user_id' : user_id
        },
        success: function(data){                
            if(data.bool == "true")
            {
                alert("True");
            }   
            else
            {
                alert("False");
            }
        },
        error: function(data){
            alert("Something went wrong");
        }
    });

即使方法“check_existence”返回true,我的Ajax也始终会发出“False”警告。可能是因为我的JSON构造不好。如何从Ruby控制器返回一个布尔值到Ajax?它不一定是JSON,如果有更好的方法,请告诉我。

2 个答案:

答案 0 :(得分:1)

由于您在contentType

中缺少t,因此可能无法正确设置内容类型

答案 1 :(得分:0)

我解决了这个问题。将:bool 更改为'bool'

<强> CONTROLLER

get "#{$INDEX_BASE_URL}/login" do
  user_id = params[:user_id]

  if ToConfigureUser.check_existence(user_id)
   {'bool' => 'true'}.to_json
  else
   {'bool' => 'false'}.to_json
  end 
end

我没有改变Ajax代码。