2016-03-29 6 views
0

これはEventためのシリアライザは今ActiveModelシリアライザ関連するモデルのパラメータのための出力を変更する

class EventSerializer < ActiveModel::Serializer 
    attributes :name, :venue, :artists 
end 

私が手出力が

私はちょうど示すにこれを変更するにはどうすればよい
[{"name":"Dance your ass off", 
    "venue":{"id":21,"name":"Speakeasy","address":"Lynwood Ave","zip_code":30312,"created_at":"2016-03-24T18:13:03.032Z","updated_at":"2016-03-24T18:13:03.032Z"}, 
    "artists":[{"id":41,"name":"DJ Sliink","bio":"jersey club king","created_at":"2016-03-24T18:13:03.067Z","updated_at":"2016-03-24T18:13:03.067Z"},{"id":42,"name":"DJ Spinn","bio":"Teklife's chief spokesperson","created_at":"2016-03-24T18:13:03.072Z","updated_at":"2016-03-24T18:13:03.072Z"}]}] 

であるように見えるものですvenueartistsの名前以下に示すように

答えて

1

あなたは、これらの必要な属性のためのカスタムメソッドを定義することができます。

class EventSerializer < ActiveModel::Serializer 
    attributes :name, :venue, :artists 

    def name 
    object.name 
    end 

    def venue 
    object.venue.name 
    end 

    def artists 
    object.artists.map(&:name) 
    end 
end 

あなたは詳細についてはAMS docsを参照することができます。

関連する問題