从3到2选项时,Grails multi-select不保存选项

时间:2014-10-06 11:15:40

标签: grails has-many multi-select

我有一个域对象类别,与域对象属性具有hasMany关系

class Category {
    static hasMany = [attributes: Attribute]
    ...
}

我使用脚手架来生成一个多选框。

<g:select name="attributes" from="${Attribute.list()}" multiple="multiple" optionKey="id" size="5" value="${categoryInstance?.attributes*.id}" class="many-to-many"/>

我可以使用它来选择框以选择1,2,3等选项。

但是当选择了3个选项并且我选择了2个选项时,它将不会保存选项。它仍将具有之前选择的3个选项。从4个选项转到3个等时会发生同样的情况。

当我回到选择1选项时。一切都有效。

还有其他人有同样的问题吗?

这是一个知道错误吗? (我找不到了)

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

@Renso发布的解决方法在我只选择了1个选项时对我不起作用,它最终会将1个属性的每个字符迭代为it,而不是作为id的单个字符串。这就是我考虑到这一点。

categoryInstance.attributes.clear()
if(params.attributes instanceof String) params.attributes = [params.attributes]
params.attributes.each { it -> categoryInstance.attributes.add(Attribute.findById(it as Long)) }