2012-12-30 17 views
4

我試圖從Backbone.js發送一個對象到我的Rails後端。目前,當我打電話save()在我的模型中,將其發送至服務器:用Backbone.js填充保存()發送的JSON對象

{"program_id":1,"issuer_id":4} 

但Rails正在期待它的格式如下:

{"program_issuer_link":{"program_id":1,"issuer_id":4}} 

有什麼辦法,我可以做到這一點封裝,當我在模型上調用save()時,從Backbone.js發送到Rails的JSON對象?我瀏覽過文檔,但找不到任何關於它的信息。

回答

6

如果您使用的是backbone-rails寶石,那麼您可以這樣做。

var User = Backbone.Model.extend({ 
    paramRoot: 'user' 
}); 

您也可以覆蓋toJSON方法這樣

var User = Backbone.Model.extend({ 
    toJSON: function(){ 
    return {user: _.clone(this.attributes)} 
    }, 
}); 
+0

唉唉感謝奧蘭多。我使用第二種方法,它運行得非常漂亮。 –

+0

@orlando你確定第一個只適用於骨幹網嗎? –

+0

@IsmaelAbreu嘗試一下,看看它是否有效,它是一個他們爲rails提供的猴子補丁(你知道,cuz rails期望帶有根節點的JSON,如果你想在Backbone.js上覆制,很容易複製,我會添加信息如何做到這一點答案 – Orlando