2013-06-27 3 views
1

У меня есть ответ сервера, который выглядит как:Создать связанную модель из JSON

comments: [ 
    0: { 
    body: "test3", 
    created_at: "2013-06-27T22:27:47Z", 
    user: { 
     email: "[email protected]", 
     id: 1, 
     name: "Tester" 
    } 
    } 
] 

И Ember модели:

App.Comment = DS.Model.extend({ 
    user: DS.belongsTo('App.User'), 
    body: DS.attr('string') 
}); 

App.User = DS.Model.extend({ 
    name: DS.attr('string'), 
    email: DS.attr('string'), 
}); 

Как создать уголек пользовательскую модель из ответа сервера?

+0

Вы используете данные ember или ищете ли вы ванильный пример без какой-либо библиотеки сохранения? –

+0

Я использую данные ember и рельсы. Я понял решение и разместил его ниже. –

ответ

1

Решение, если вы используете Рельсы активные модели сериализаторы является embed :ids, include: true:

приложение/сериализаторов/comment_serializer.rb

class CommentSerializer < ActiveModel::Serializer 
    embed :ids, include: true 
    attributes :created_at, :body 
    has_one :user 
end 

Как the readme for active_model_serializers говорит, это будет производить:

{ 
    "users":[ 
     { 
     "id":1, 
     "name":"Tester", 
     "email":"[email protected]", 
     } 
    ], 
    "comments":[ 
     { 
     "event":"commented", 
     "created_at":"2013-06-27T22:27:47Z", 
     "body":"test3", 
     "user_id":1 
     } 
    ] 
}