这是我的问题: -
class ReasonForCancellation {
String reason
Status status
Date lastUpdated
Date dateCreated
static constraints = {
reason(blank:false,maxSize:100,unique:true)
dateCreated()
lastUpdated()
}
enum Status{
ACTIVE(true),
INACTIVE(false)
private boolean bool
public Status(boolean bool){
this.bool = bool
}
}
}
我的视图页面中有1个文本框和1个下拉列表。当我在文本框中输入值“FOO”并单击活动选项并保存时。它已保存。当我单击编辑选项并单击时,我需要做什么在deactive选项并尝试在文本框中给出相同的值“FOO”并保存它然后它应该使用相同的唯一值本身更新。它不应该给出唯一的警报消息。
答案 0 :(得分:0)
您可能获得了唯一约束,因为Grails认为您正在尝试保存新记录。你要进行更新的保存方法应该类似于:
def update = {
def reasonForCancellation = ReasonForCancellation.get(params.id)
reasonForCancellation.properties = params
reasonForCancellation.save()
}
您应该将GSP中编辑记录的ID作为隐藏字段。这是非常标准的东西。您可能需要花些时间阅读更多文档和/或选择一本关于Grails的好书。