ember.js - padre persistente y registro incrustado en datos de diciembre
ember-data (2)
Por lo que recuerdo, en realidad nunca fue compatible con la versión (antigua) de Ember Data que usé en ese entonces. Las versiones más nuevas manejan ese caso de manera diferente de todos modos, por lo que diría que está desactualizado y cerrarlo.
Tengo los siguientes modelos:
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'')
});
La empresa se define como incrustada en la cuenta:
DS.RESTAdapter.map(''App.Account'', {
company: { embedded: ''always'' }
});
Cuando creo una nueva cuenta, los datos de la compañía están correctamente incrustados en los datos de la cuenta y veo la solicitud POST que espero en el lado del servidor:
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"}}}
Sin embargo, también estoy viendo una solicitud POST adicional para la propia compañía:
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"}}
Estoy configurando los modelos de la siguiente manera:
this.transaction = this.get(''store'').transaction();
var account = this.transaction.createRecord(App.Account, {});
account.set(''company'', this.transaction.createRecord(App.Company, {}));
Cuando el usuario hace clic en guardar, simplemente confirmo la transacción:
this.transaction.commit();
¿Es eso un error o estoy haciendo algo mal? Pasé bastante tiempo en eso ya ...
¡Gracias por la ayuda!
this.transaction.createRecord(App.Company, {})
El fragmento de código crea la entidad de la compañía separada. ¿Es realmente una sorpresa que haya una acción posterior para eso?