2011-12-05 3 views
0

(Rails 3 + backbone 0.53) "/ payments" URLでAPIからデータを取得していますが、さまざまな種類の支払いデータが返されます。特定のモデルを使用しないでBackbone.Syncを使用する

ので、ユーザは、例えばのは、クレジットカードエントリー言わせて、削除することができ、それは

"/credit_cards". 

問題がある上、サーバーにバックアップされた同期されている私は、構文でBackbone.Syncを使用している場合

Backbone.Sync('delete', @options.credit_cards.get('id')) 

"" URL "プロパティまたは機能を指定する必要があります。"というエラーが表示されます。

これはモデル例えばように理にかなって:credit_cards任意のデータを格納しないため

@options.credit_cards.get('id') 

は、この場合には存在しません。私はちょうどたいが、標準ではBackbone.syncとDELETEを行うáラ

"/credit_cards/:id" 

ちょうど(私が支払い/から受信)IDではないモデルを指定して

(しかし、モデル/コレクションは、URLを持っています...)

私の質問は次のとおりです。1.) バックボーンで、実際にコレクション/モデルにデータを格納せずにbackbone.syncを使用する方法があります。これは、jQueryの単純なajaxリクエストのようです。 例:代わりに混合Backbone.Sync & $アヤックスの要求を使用しての

Backbone.Sync('delete', "specify_a_url_here_with/#{id}")) 

2.)は、まったく意味がありますか、より良い選択肢があります。

ありがとうございます!私は本当にそれが大好き!質問が奇妙ではないことを願っています。 Phil

答えて

0

あなたは "オプション" でBackbone.Syncに "URL" と "データ" を渡すことができます。

Backbone.sync(method、model、options)は、オプションで明示的に渡さない限り、params.urlとparams.dataがモデルを反映する$ .ajax(params)を返します。

ので

Backbone.sync('delete', false, {url : "/credit_cards/1", data : ''}) 

動作するはずです。

0

デフォルトのバックボーンの振る舞いに適合していないような、もう少しカスタムなことをしようとしているので、モデル内のSync()関数をオーバーライドするか、別の関数を定義するか独自のAjax呼び出しを定義することができます。

バックボーンモデル関数は、必要なときにオーバーライドできる適切なデフォルトのセットと考える傾向があります。

スコット

関連する問題