1

У меня есть рельсы api с драгоценным камнем "active_model_serializers".Emberjs, rails - Адаптер активной модели

http://localhost:3000/api/buildings/30.json создает для меня это:

{ 
    building:{ 
     id:30, 
     city_name:"msc", 
     infrastructure:[ 
     { 
      id:40, 
      name:"name 1", 
      created_at:"2015-07-30T08:26:49.000Z", 
      updated_at:"2015-07-30T08:26:49.000Z" 
     }, 
     { 
      id:69, 
      name:"name 2", 
      created_at:"2015-07-30T08:26:50.000Z", 
      updated_at:"2015-07-30T08:26:50.000Z" 
     }, 
     { 
      id:39, 
      name:"name 3", 
      created_at:"2015-07-30T08:26:49.000Z", 
      updated_at:"2015-07-30T08:26:49.000Z" 
     } 
     ] 
    } 
} 

Также я использую EmberJs с ActiveModelAdapter. Но Эмбер ожидает следующее:

{ 
    building:{ 
     id:30, 
     city_name:"msc", 
     infrastructure:[ 
     40, 
     69, 
     39 
     ] 
    }, 
    infrastructure:[ 
     { 
     id:40, 
     name:"name 1", 
     created_at:"2015-07-30T08:26:49.000Z", 
     updated_at:"2015-07-30T08:26:49.000Z" 
     }, 
     { 
     id:69, 
     name:"name 2", 
     created_at:"2015-07-30T08:26:50.000Z", 
     updated_at:"2015-07-30T08:26:50.000Z" 
     }, 
     { 
     id:39, 
     name:"name 3", 
     created_at:"2015-07-30T08:26:49.000Z", 
     updated_at:"2015-07-30T08:26:49.000Z" 
     } 
    ] 
} 

Как я могу сделать работу с углем, используя структуру rails json? Спасибо!

ответ

0

Другой вариант пойти по пути API JSON.

Я думаю, что это лучший вариант, потому что

  • вы начинаете кодирования для текущего/будущего формата Ember данных
  • это понятнее карту и понять, что происходит с данными

я написал руководство, которое находится на http://emberigniter.com/modern-bridge-ember-and-rails-5-with-json-api/ (для Rails 5), но вы, безусловно, можете адаптировать его к своей версии Rails

1

Вам необходимо использовать Embedded Records Mixin со стороны Ember.

App.ColorSerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, { 
    attrs: { 
    foos: {embedded: 'always'} 
    } 
}); 

Заканчивать this answer

+0

Действительно уродливо «перечислить все типы, встроенные в attrs hash. " Но это работа! Спасибо тебе большое! – Costa