1

SpineModel.updateAttributesは属性を更新するだけで、何かを指定した場合に新しい属性を作成しないようです。

私のユースケースでは、属性の一部を作成するコントローラーがあります。次に、Ajax リクエストを介してサーバーが完全なオブジェクトで応答し、Spine にあるモデル インスタンスを追加の変数で更新したいと考えています。

たとえば、属性を持つモデルがあります: namedate_createdユーザーはコントローラーを介して、名前のみを提供するオブジェクトをインスタンス化します。Ajax リクエストはサーバーに通知し、サーバーは名前とdate_createdで応答します。次に、このdate_createdをユーザーのモデルに追加する必要があります。

Model.updateAttributesオブジェクトを削除して新しいオブジェクトを作成するのはあまり好きではありません-それはオーバーヘッドが多すぎるようです. 作成時に設定されていない変数のデフォルト値を提供できますが、それにはマイナス面もあります。私が探しているのは、呼び出すことができるメソッドだと思いModel.createOrUpdateAttributesます。これを達成する方法を誰かが推奨できますか? ありがとう!

4

1 に答える 1

2

私はあなたのユースケースを完全には理解していないかもしれませんが、私は答えようとします。モデルのタイプが持つ属性をconfigureclassメソッドで宣言する必要があります。この宣言は、さまざまなモデル関数が後で仕事をするのに役立ちます。必要なすべての属性を宣言した後、以前に宣言された属性のいずれかを使用してモデルインスタンスを作成できます。宣言されたすべての属性に値を指定する必要はありません。ajax呼び出しが戻った後、date_createdがモデルインスタンスに設定されます。これが発生するまで、それは未定義になります。

それでもこの解決策がうまくいかない場合は、その理由を説明してください。喜んでお手伝いさせていただきます。

于 2013-02-26T13:18:25.687 に答える