假设我有一个模型,该模型具有一些存储在数据库中的属性,另一个具有存储在其他位置的属性,但是客户端将其作为一个单独的JSON Blob接收。

App.Tournament = DS.Model.extend({
  name:              DS.attr("string"),
  ...
  is_registered:     DS.attr("boolean")
});


属性is_registered不是服务器模型的一部分,我想单独保存它。这是一个例子

tournament = App.store.find(App.Tournament, 1);
tournament.set("name", "foo bar");
tournament.set("is_registered", true);

App.store.commit();


这会像

PUT /tournaments/1 name: "foo bar"
POST /tournaments/1/register


或类似的内容,其中保存的属性与默认属性不同。有没有简单的方法可以做到这一点,还是我以错误的方式来解决问题?

最佳答案

我将在服务器上管理这种复杂性。在一个以上的请求中将一个逻辑项保存在客户端上的问题是,如果其中一个请求失败,则您的数据可能已损坏。如果您执行某种Facade服务来协调数据流向何处,则可以围绕该操作包装事务。

09-12 12:57