Ruby on rails 从RubyonRailsAPI返回JSON

Ruby on rails 从RubyonRailsAPI返回JSON,ruby-on-rails,angularjs,arrays,json,ruby,Ruby On Rails,Angularjs,Arrays,Json,Ruby,我继承了一个RoR api,它为angular应用程序提供了这个api。我是RoR新手,我对api以json格式返回数据的方式有困难 def getLocations location = params[:name] query = "select * from view_locations where lower(location_name) like lower('#{location}%') limit 4 " propAll = Property.connect

我继承了一个RoR api,它为angular应用程序提供了这个api。我是RoR新手,我对api以json格式返回数据的方式有困难

def getLocations
    location = params[:name]
    query = "select * from  view_locations where lower(location_name) like lower('#{location}%') limit 4 "
    propAll = Property.connection.select_all(query)
    respond_to do |format|
      if !propAll.blank?
         format.json { render json: {status:"ok", data:propAll}}
      else
        format.json { render json: {status:"error"}}
      end
    end
  end
此代码返回以下数组:

[{“地点名称”:“新莱昂”,“id”:“19”,“数量”:“5988”,“类型”:“州”},{“地点名称”:“墨西哥华雷斯诺卡尔潘”,“id”:“09”,“数量”:“131”,“类型”:“城市”},{“地点名称”:“纳亚里特”,“id”:“18”,“数量”:“91”,“类型”:“州”},{“地点名称”:“纳卡朱卡,塔巴斯科”,“id”:“013”,“数量”:“20”,“类型”:“城市”}]

有没有办法返回JSON而不是数组? 如果不可能,我应该如何在Angularjs中使用返回的数组,现在我们正在检查每个数组元素并将其放入另一个数组中

谢谢你的帮助
Alberto

数据仅作为JSON发送到客户端。但是,您需要的是什么数据结构而不是数组?发送的数据格式正确,但从数据库获取数据的方式不正确。:)我使用了asp.net web api,我会得到这个{“地点名称”:“新莱昂”,“id”:“19”,“数量”:“5988”,“类型”:“州”},{“地点名称”:“Naucalpan de Juárez,México”,“id”:“09”,“数量”:“131”,“类型”:“城市”},{“地点名称”:“Nayarit”,“id”:“18”,“数量”:“91”,“类型”:“州”},{“地点名称”:“Nacajuca,Tabasco”,“id”:“013”,“数量”:“20”,“type”:“City”}我将使用它,而不在客户端上进行任何转换,vm.locations=response.locations,然后在一个无效的selects中使用vm.locations。您有一个对象列表,在这种情况下需要数组。否则语法无效。如果不将它们包装到数组中,如何发送它们?
{a:1},{b:2}
不是有效的JSON。您可以使用response.data.foreach(函数(项){})在一个接一个地联系他们的成功回调中,我得到了Arup,感谢数据仅作为JSON发送到客户端。但是您要找的是什么数据结构而不是数组?发送的数据格式是正确的,但从数据库中获取数据的方式不是Rails方式。:)我使用了asp.net web api,我会得到这个{“位置\名称”:新莱昂、id:“19”、“数量”:“5988”、“类型”:“国家”}、{“地点名称”:“墨西哥华雷斯诺卡尔潘”、“id:“09”、“数量”:“131”、“类型”:“城市”}、{“地点名称”:“纳亚里特”、“id:“18”、“数量”:“91”、“类型”:“国家”}、{“地点名称”:“纳卡朱卡、塔巴斯科”、“id:“013”、“数量”:“20”、“类型”:“城市”}我会使用它,而不在客户端上进行任何转换,vm.locations=response.locations,然后在一个无效的选择器中使用vm.locations。您得到了一个对象列表,在这种情况下需要数组。否则语法无效。您如何发送这些对象而不将它们包装到数组中?
{a:1},{b:2}
不是有效的JSON。您可以在成功回调时使用response.data.foreach(function(item){})逐个访问它们。明白了,谢谢