与下拉有关的grails

时间:2012-06-01 11:17:03

标签: grails

这是我的问题: -

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”并保存它然后它应该使用相同的唯一值本身更新。它不应该给出唯一的警报消息。

1 个答案:

答案 0 :(得分:0)

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

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

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