我目前有一个返回JSON对象的控制器,如下所示:
def getModels
@vehicleModels = @vehicleModels.where(:vehicleMake_id => params[:vehicleMake])
respond_with(@vehicleModels)
end
这很好用,并返回以下JSON:
[
{"created_at":"2011-06-22T15:49:06Z","id":1,"name":"A4","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":2,"name":"A5","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":3,"name":"A6","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":4,"name":"A8","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":5,"name":"TT","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":10,"name":"Touareg","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1}
]
问题是我试图加载JSON的JQuery下拉列表似乎期待一个JSON根节点。因此,直接加载上面的JSON不起作用。但如果它有一个根节点,如下所示,它可以正常工作:
{"results":[
{"created_at":"2011-06-22T15:49:06Z","id":1,"name":"A4","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":2,"name":"A5","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":3,"name":"A6","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":4,"name":"A8","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":5,"name":"TT","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1},
{"created_at":"2011-06-22T15:49:06Z","id":10,"name":"Touareg","updated_at":"2011-06-22T15:49:06Z","vehicleMake_id":1}
]}
所以问题很简单 - 如何让rails包含根节点?
我应该指出,我试图通过在我的配置中设置ActiveRecord::Base.include_root_in_json = true
来尝试这样做,但是只根据我的需要将根节点添加到每个单独的对象,而不是一个整体根节点。
谢谢!
答案 0 :(得分:3)
您可以执行以下操作
respond_with { :results => @vehicleModels }