Я избавился от оригинальных предложений UPDATE gsp Grails.
Я поместил его в первую строку таблицы list.gsp и изменил все значения таблицы на поле g: text, чтобы их можно было редактировать, не переходя к save.gsp
Но сейчас я пытаюсь заставить это работать, и я не могу.
Я добавил кнопку обновления в последнем столбце каждой строки.
Когда я изменяю значения текстовых полей g: и нажимаю кнопку обновления, это говорит мне
Density #ID updated
но значения не меняются.
Я думаю, что что-то не так с обновлением def в контроллере.
Вот код:
def update = {
log.info "Entering Action ${actionUri}"
def densityInstance = Density.get(params.id)
if (densityInstance) {
if(params?.Rcommodity) {
println "${params.Rcommodity}"
}
if (params.version) {
def version = params.version.toLong()
if (densityInstance.version > version) {
densityInstance.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'density.label', default: 'Density')] as Object[], "Another user has updated this Density while you were editing")
render(view: "list", model: [densityInstance: densityInstance])
return
}
}
densityInstance.properties = params
if (!densityInstance.hasErrors() && densityInstance.save(flush: true)) {
flash.message = "${message(code: 'default.updated.message', args: [message(code: 'density.label', default: 'Density'), densityInstance.id])}"
redirect(action: "list", id: densityInstance.id)
}
else {
redirect(action: "list", id: densityInstance.id)
}
}
else {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'density.label', default: 'Density'), params.id])}"
redirect(action: "list")
}
}
Rcommodity - это имя созданных текстовых полей, я положил println, чтобы увидеть, было ли значение правильным, теперь я не знаю, как сделать значение текстового поля введенным, оно дает мне то же значение это было раньше, но оно дает мне сообщение о том, что оно было обновлено.
Контроллер - DensityController, а домен - плотность
.
Любая помощь будет принята с благодарностью. Спасибо: D