1

[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のラッピングレイヤーがもう1つ必要なので、たとえばmy_results、これら3つのJSON結果を配列のようにラップします。 JBuilderで新しい要素を作成するときjson.my_results

4

1 に答える 1

2

はい、分かりました。を送信しているコントローラーrespond_with(@blah)では、ルート要素を渡し、好きな名前を付ける必要があります。たとえば、次のようになります。

respond_with(@blah, root: 'my_results')
于 2013-03-13T04:06:33.893 に答える