0

这是我的问题:--

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”并单击活动选项并保存它时。它保存了。当我单击编辑选项并单击停用选项时我需要做什么并尝试在文本框中给出相同的值“FOO”并保存它,然后它应该使用相同的唯一值本身更新。它不应该给出唯一的警报消息。

4

1 回答 1

0

您可能会得到唯一约束,因为 Grails 认为您正在尝试保存新记录。您要进行更新的保存方法应类似于:

def update = {
  def reasonForCancellation = ReasonForCancellation.get(params.id)
  reasonForCancellation.properties = params
  reasonForCancellation.save()
}

并且您应该将 GSP 中的编辑记录的 ID 作为隐藏字段。这是很标准的东西。您可能想花一些时间阅读更多文档和/或阅读一本关于 Grails 的好书。

于 2012-06-01T16:32:31.963 回答