2014-12-29 2 views
1

У меня есть две модели:Sideloading с Ember ActiveModelAdapter и Rails

user: [ 
    firstName: DS.attr('string'), 
    lastName: DS.attr('string'), 
    animals: DS.hasMany('animal', { async: true }) 
] 

animal: [ 
    name: DS.attr('string'), 
    user: DS.belongsTo('user', { async: true }) 
] 

Когда я вижу животных маршрут все работает отлично, в формате JSON, что рельсы возврата, как:

{"animals":[{"id":1,"name":"Wiskey","user_id":3} 

и угасающий вызова GET для пользователя/3.

Когда я пытаюсь найти всех пользователей, что у меня есть это JSON:

{"users":[{"id":3,"firstName":"Bob","lastName":"Marley","animal_ids":[4,8,14]} 

, но не GET был вызов для животных 4, 8 и 14. В чем проблема? Адаптером, который я использую, является ActiveModelAdapter.

Спасибо!

ответ

1

Посмотрите на активную модель сериализатора драгоценный камень (here) о том, как есть рельсы вернуть пользователей и животных в одном вызове с рельсов

Существует также очень хороший railscast об этом here

0

Вы должны попробовать для доступа к связи animals для данных Ember для запроса дополнительных записей. Если он не отображается в шаблоне или не доступен в другом месте, тогда нет необходимости делать запрос на сервер.

Другая причина, по которой он не может сделать запрос, заключается в том, что другой звонок на сервер уже привел к тому, что данные Ember Data загрузили эти записи в хранилище. Если он уже сохранил эти записи, он не будет пытаться загрузить их снова, если явно не просят сделать это.

+0

Хорошее объяснение. Из ее названия, похоже, она ожидала, что «животные» будут автоматически «загружены» автоматически, чего не произошло – Kalman

+0

Да, мне нужно автоматически брать данные. Я не думаю, что это проблема с рельсами, но проблема с ember, потому что, когда я получаю, пользователи не начинают получать связанные с ними Животные. Возможно, пропустите некоторые настройки. Я пытаюсь сериализовать данные с помощью ActiveModelSerializer таким образом. DS.ActiveModelSerializer.extend (DS.EmbeddedRecordsMixin, {attrs: {animals: {serialize: 'ids'}}}); но ничего. – Francesca

Смежные вопросы