0

我正在学习 Ruby on Rails。

我的http://localhost:3000/locations.json回报如下:

[{
  "name":"ABC",
  "address":"xyz",
  "latitude":12.3,
  "longitude":14.5,
  "url":"http://localhost:3000/locations/1.json"
}]

如何在不解析 URL的情况下修改locations_controller.rbJSON 返回的顺序?id

[{
  "id":1,
  "name":"ABC",
  "address":"xyz",
  "latitude":12.3,
  "longitude":14.5,
  "url":"http://localhost:3000/locations/1.json"
}]

我的当前locations_controller.rb包含以下内容:

def index
  puts "index"
  @locations = Location.all
end

谢谢你。

4

3 回答 3

0

您可以尝试像Rabl这样的框架,它可以让您更好地控制 json 的输出。这将允许您轻松指定要包含在 json 响应中的内容。

于 2013-08-13T15:54:24.877 回答
0

我设法解决了这个问题。

需要更改为以下内容:

def index
 puts "index"
 @locations = Location.all
end

 def index
     @locations = Location.all
     respond_to do |format|  
        format.html #index.html.erb
        format.xml  { render :xml => @locations }
        format.json  { render :json => @locations }
     end
 end`

谢谢。

于 2013-08-14T03:53:41.710 回答
0

您可以使用jbuilder

# @people = People.all

json.array! @people, :id, :name

# => [ { "id": 1, "name": "David" }, { "id": 2, "name": "Jamie" } ]
于 2013-08-14T03:59:19.790 回答