2017-09-29 180 views
0

當我在Grails中使用RestfulController來保存對象的數據時,如何防止客戶端將更改應用到相關的子對象?如何防止更新兒童屬性?

假定下列域類:

class Language { 
    String name 
} 

class TranslationText { 
    Language language 
    String text 
} 

而對於一個TranslationText以下POST數據:

{ 
    "language": { "id": 1, "name": "InvalidName" }, 
    "text": "Some Text" 
} 

在這裏,我想引用一個現有語言資源(與ID = 1),但我不希望名稱被客戶改變。

如何使用文本和語言(基於ID)保存此資源,但丟棄無效的語言名稱屬性?

我想以儘可能最小的方式修改RestfulController,儘可能保留默認行爲。

+0

你可以用'綁定如果你不想分配'name'屬性''約束。 http://docs.grails.org/latest/ref/Constraints/bindable.html –

+0

如果我將它映射到語言類上,當我發佈到LanguageController時,這不會阻止我綁定它嗎? – RMorrisey

回答