Ember получает ответ JSON на запрос POST

У меня есть Ruby On Rails API и внешний интерфейс в ember. Пытаюсь добавить запись из ember в свой апи. Я вижу в своих журналах API, что мой запрос хорошо выполнен и возвращает json. Но в моем приложении Ember я пытаюсь распечатать этот ответ JSON и получить доступ к этой информации.

вот код из моего контроллера для создания записи из моего приложения ember:

export default Ember.Controller.extend({
  actions: {

    submit: function(){
      var result = this.store.createRecord("session", {email: this.get('email'), password: this.get('password')});
      var onSuccess =  function(post){

        console.log("kikou");
        console.log(post);
      };

      var onFail =  function(post){
        console.log("kikou");
        console.log(post);
      };

      result.save().then(onSuccess, onFail);
    }
  }

возвращенный JSON:

{"user":{"email":"[email protected]","authentication_token":"4vLAkiM1Ro5qN2HeNogM","id":1}}

Как я могу получить доступ к электронной почте, authentication_token и т. д.? Может быть, я делаю что-то не так или это неправильный способ создания записи в моем API рельсов?

Я не хочу делать какой-либо ajax-код в своем контроллере, иначе я не вижу никакого интереса к использованию Ember.

Спасибо за помощь,


person Kaëris    schedule 01.05.2015    source источник


Ответы (1)


Вы должны определить модель user, а также использовать DS.ActiveModelAdapter для ваше приложение Ember:

приложение/модели/user.js

import DS from 'ember-data';
export default DS.Model.extend({
  email: DS.attr('string'),
  authentication_token: DS.attr('string')
});

Затем в функции onSuccess вы можете получить доступ к данным следующим образом:

var onSuccess =  function(post){
  console.log(post.get('id'));
  console.log(post.get('email'));
  console.log(post.get('authentication_token'));
};
person Joel A. Villarreal Bertoldi    schedule 01.05.2015
comment
Я сделал именно то, что вы сказали, но когда я делаю post.get('id'), он печатает null, а для post.get('authentication_token') печатает undefined, но электронное письмо печатается. - person Kaëris; 01.05.2015
comment
Можете ли вы создать jsbin или аналогичный файл, чтобы воспроизвести проблему? - person Joel A. Villarreal Bertoldi; 01.05.2015