2013-03-13 77 views
1

所以我想使用最近添加到rails的新的[ActiveModel::Serializer][1]自定義串行器的輸出

如果我寫我的串行這樣的:

class PatientSerializer < ActiveModel::Serializer 
    attributes :patient_money, :doctor_name 

    def doctor_name 
    object.doctor.name 
    end 
end 

我得到的JSON是這樣的:

[ 
// HERE.... 
    { 
     "patient_money":"40.0", 
     "doctor_name":"Ostad" 
    }, 
    { 
     "patient_money":"30.0", 
     "doctor_name":"Oz" 
    }, 
    { 
     "patient_money":"20.0", 
     "doctor_name":"Phil" 
    } 
] 

這是非常接近我想要什麼,但在我把那「的地方HERE「上面的評論,我想要一個更多的JSON包裝層,所以我可以說例如my_results,然後圍繞它像數組一樣包裝這三個JSON結果,就像當我們在0123時表示的那樣,在JBuilder中創建一個新元素json.my_results

回答

2

好吧,我明白了。 在控制器正在發送一個respond_with(@blah)我應該通過一個根元素和命名爲任何我喜歡例如:

respond_with(@blah, root: 'my_results')