Diferença entre model.save () versus model.get ('store'). Commit ()

Qual é a diferença entre

// 'this' is the controller
this.get('model').save();

e

// 'this' is the controller
this.get('model').get('store').commit();

? Dos pequenos testes que fiz, ambos me deram os mesmos resultados.Qual deles devo usar?

Eu olhei para o primeiro e ele chama

DS.Model = Ember.Object.extend(
  ...
  save: function() {
    this.get('store').scheduleSave(this);

    var promise = new Ember.RSVP.Promise();

    this.one('didCommit', this, function() {
      promise.resolve(this);
    });

    return promise;
  }, 

Então a questão então se torna, qual é a principal diferença entrethis.get('store').scheduleSave(this) ethis.get('store').commit()?

DS.Store = Ember.Object.extend(DS._Mappable, {
  ...
  scheduleSave: function(record) {
    get(this, 'currentTransaction').add(record);
    once(this, 'flushSavedRecords');
  },
  ...
  /**
    This method delegates committing to the store's implicit
    transaction.

    Calling this method is essentially a request to persist
    any changes to records that were not explicitly added to
    a transaction.
  */
  commit: function() {
    get(this, 'defaultTransaction').commit();
  },

Não tenho certeza qual é o melhor. Estou inclinado para salvar () porque parece envolver a loja.

(Eu não consegui encontrar esses códigos no github, não sei se o github ou a versão amazonaws do emberjs é o mais recente. Aqui estão as versões similares no github:salvar do modelo () quais chamadasagendaSave da loja ()ecommit da loja ())

questionAnswers(1)

yourAnswerToTheQuestion