【发布时间】:2014-10-06 11:15:40
【问题描述】:
我有一个与域对象属性有 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 选项时。一切都恢复正常了。
其他人有同样的问题吗?
这是一个已知的错误吗? (我没找到)
有解决办法吗?
【问题讨论】:
-
您检查过,实际已提交(例如使用一些 web 开发人员工具,如 firebug),您检查您的
category.save()调用是否有错误? -
是的,我做到了。新的 ID 已提交。更新不包含错误。它只是具有集合中的旧属性。新的 ID 在参数中。所以我确实找到了解决方法,但我不喜欢它。 categoryInstance.attributes.clear() params.attributes.each { it -> categoryInstance.attributes.add(Attribute.findById(it as Long)) }
标签: grails has-many multi-select