如何使用 ExtJS 从 Ruby on Rails 读取 JSON

Mik*_*cic 3 javascript ruby json extjs ruby-on-rails

我有一些现有项目是建立在不推荐使用的 PHP 框架上的,我希望能以最少的努力将它们转移到 Ruby on Rails。我现在的主要问题是 JSON 返回的格式。我的前端代码(所有 ExtJS)期望格式为 JSON:

{
    "result": [
        [id: 1, name: "mike"],
        [id: 2, name: "john"],
        [id: 3, name: "gary"]
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是 Ruby on Rails 的默认返回如下:

{
    "result": [
        {"record" : {id: 1, name: "mike"}},
        {"record" : {id: 2, name: "john"}},
        {"record" : {id: 3, name: "gary"}}
    ]
}
Run Code Online (Sandbox Code Playgroud)

我的控制器基本上什么都不做,但:

@records = Record.find(:all)
respond_to do |format|
  format.json { render :text => @records.to_json}
end
Run Code Online (Sandbox Code Playgroud)

如您所见,它为每条记录添加了一个额外的键,我的前端 ExtJS 代码无法按原样解析这些键。有什么办法可以阻止这种情况发生吗?

谢谢你的尽心帮助,

迈克·特普西奇

air*_*iry 5

基本上 :

ActiveRecord::Base.include_root_in_json = false
Run Code Online (Sandbox Code Playgroud)

或者

YourClass.include_root_in_json = false
Run Code Online (Sandbox Code Playgroud)

如此处所述:http : //apidock.com/rails/ActiveRecord/Serialization/to_json