0

在ember.js(1.2)我試圖將更改發佈到子模型,但ember.js在POST中包含parent_id。但是,parent_id對於我的Rails 4控制器不是「允許的」參數,所以POST失敗並出現以下錯誤。在Ember.js和Rails 4中發佈parent_id會導致未經許可的參數錯誤。刪除或忽略?

Processing by ThingsController#update as JSON 
    Parameters: {"thing"=>{"title"=>"Test","location"=>"Baltimore","parent_id"=>nil} 
Unpermitted parameters: parent_id 

因爲我不想做一個parent_id允許參數爲這種模式,如何我從信息中刪除嗎?

回答

0

我能夠解決這個問題,通過刪除子類中的父引用。這在我的申請中並不是必需的,因爲我經常從父母那裏接觸孩子,但我從來沒有從孩子那裏接觸父母。換句話說,新車型看起來像:

App.Thing = DS.Model.extend({ 

// commented out -> parent: DS.belongsTo('App.ParentThing'), 

    title: DS.attr('String'), 
    location: DS.attr('String') 
}); 
0

它不會導致任何問題將parent_id的值留在POST參數中,因此您可以忽略它。

如果您想要保持清潔(不要混淆其他開發者),則應編輯執行POST的表單並刪除包含parent_id的表單域。

如果您發佈您的查看代碼,我可以舉辦建議如何做後者。

+0

感謝您的回答。當然,你是對的,只是在ember.js中隱藏了很多表單信息。我今天早上通過從子模型中刪除了'parent:DS.belongsTo('App.ParentModel')'來解決它。 – GSP

1

我遇到了同樣的事情用createdAt屬性。這很容易通過覆蓋ApplicationSerializer(或在您的情況下,ThingSerializer)來解決:

App.ApplicationSerializer = DS.ActiveModelSerializer.extend 
    serialize: (record, options) -> 
    json = @_super(record, options) 
    delete json.created_at 
    json