Сохраняющаяся родительская и встроенная запись в данных ember-data

У меня есть следующие модели:

App.Company = DS.Model.extend({
  name:  DS.attr('string'),
  accounts: DS.hasMany('App.Account', {
    inverse: 'company'
  })
});

App.Account = DS.Model.extend({
  login:                 DS.attr('string'),
  first_name:            DS.attr('string'),
  last_name:             DS.attr('string'),
  email:                 DS.attr('string'),
  password:              DS.attr('string'),
  password_confirmation: DS.attr('string'),
  company:               DS.belongsTo('App.Company')
});

Компания определяется как встроенная в учетную запись:

DS.RESTAdapter.map('App.Account', {
  company: { embedded: 'always' }
});

Когда я создаю новую учетную запись, данные компании правильно внедряются в данные учетной записи, и я вижу запрос POST, который я ожидаю на стороне сервера:

Started POST "/accounts" for 127.0.0.1 at 2013-06-27 13:30:53 +0200
Processing by AdminUsersController#create as JSON
  Parameters: {"account"=>{"login"=>"fsdfdf", "first_name"=>"fgdfgh", "last_name"=>"[email protected]", "email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "company"=>{"name"=>"gfdhgtrhzrh"}}}

Однако я также вижу дополнительный запрос POST для самой компании:

Started POST "/companies" for 127.0.0.1 at 2013-06-27 13:30:53 +0200
Processing by CompaniesController#create as JSON
  Parameters: {"company"=>{"name"=>"gfdhgtrhzrh"}}

Я настраиваю модели следующим образом:

this.transaction = this.get('store').transaction();
var account = this.transaction.createRecord(App.Account, {});
account.set('company', this.transaction.createRecord(App.Company, {}));

Когда пользователь нажимает кнопку "Сохранить", я просто фиксирую транзакцию:

this.transaction.commit();

Является ли это ошибкой или я делаю что-то неправильно? Прошло довольно много времени на этом уже...

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

Ответы

Ответ 1

Насколько я помню, это никогда не поддерживалось в (старой) версии Ember Data, которую я использовал тогда. Новые версии обрабатывают этот случай по-другому, так что я бы сказал, что это устарело и закрыло его.

Ответ 2

this.transaction.createRecord(App.Company, {})

Фрагмент кода создает отдельный объект компании. Неужели это такой сюрприз, что для него существует пост-действие?