Я пытаюсь выполнить стандартный поток с добавлением сущности в DB. Поток должен выглядеть следующим образом:Как правильно привязать данные в Grails
- Пользователь открывает ссылку example.co/connection/putForm
- редактировать все поля
- представить (POST) в example.co/connection/put
- если ошибок нет, то он перенаправляется на ../conncetion/index, иначе он должен увидеть предыдущую форму со всеми заполненными полями (шаг 2) и сообщение об ошибке
На данный момент мой код выглядит следующим образом:
def putForm() {
[
providers: Provider.findAll(),
cities : City.findAll()
]
}
@Transactional
def put() {
// not important part of parsing fields from params
def provider = Provider.get(params.provider)
def startTime = parseStartTime(params)
def path = parsePath(params)
def departurePlace = params.departurePlace
def connection = new Connection(provider: provider, startTime: startTime, departurePlace: departurePlace, path: path)
if (connection.save()) {
redirect controller: 'connection', action: 'index', params: [addedConnection: connection.id] // this part is OK
} else {
render view: 'putForm', params: params, model: [connection: connection] // this sucks... look below
}
}
Проблема заключается в том, что мне нужно сделать вид putForm но из ссылки .../подключение/ставить. Эта причина проблемы, что после этого визуализировать все текстовые поля пусты (шаг 4 выше). Также у меня есть уродливая ссылка.
Есть ли у Grails какой-либо шаблон для этой общей ситуации?
PS Я не могу использовать строительные леса.
Его трудно дать окончательный ответ, так как все его предположения, не видя полного содержимого put + putForm. Что произойдет, если вы визуализируете представление «put» (сам), появляются ли поля? Если это так, на 100%, что определения значений в put и putForm идентичны, попробуйте выполнить проверку смены страниц, а также добавьте $ {params} ----
$ {connection} ----
наверху обеих страниц .. просмотрите их вывод, если они идентичны, то проблема на вашем putForm gsp – Vahid