Сгенерированный контроллер Grails 3.3.8 не может создавать объекты - PullRequest
0 голосов
/ 25 января 2019

У меня есть объект домена пользователя с обычными полями (имя, пароль и т. Д.)

Я сгенерировал представления и контроллер, используя:

grails generate-all Пользователь

Генерируемый UserController имеет это:

 def create() {
      respond new User(params)
 }

Когда я запускаю приложение и нажимаю кнопку «Создать пользователя», я получаю эту ошибку:

Error 500: Internal Server Error
URI
/user/create
Class
groovy.lang.MissingPropertyException
Message
null
Caused by
No such property: controller for class: gi.dam.desk.core.User
Around line 23 of grails-app/controllers/gi/dam/desk/admin/UserController.groovy
20:     }
21:
22:     def create() {
23:          respond new User(params)
24:     }

Если я отлаживаю приложение и смотрю содержимое «params», его:

controller: user
format: null
action: create

кажется странным, что это будет передано при создании объекта домена. В любом случае, это не удается.

Если я изменю код таким образом:

 def create() {
      respond new User()
 }

Дальше - он создает пользователя, но после перенаправления не проходит.

1 Ответ

0 голосов
/ 27 января 2019

Похоже, ваш User класс не распознается как класс домена. Я могу сказать это, потому что конструктор Map, который мы добавляем к классам домена, будет игнорировать записи в Map, которые не имеют соответствующих свойств в классе. Вы видите ошибку, которая исходит из конструктора Groovy Map по умолчанию, поэтому я думаю, что ваш класс User не распознается как класс домена.

Убедитесь, что класс домена User определен в grails-app/domain/gi/dam/desk/core/User.groovy, и если проблема все еще возникает, убедитесь, что проблема возникает при запуске приложения из командной строки ./gradlew bootRun. Это исключит ряд действий, которые могут быть связаны с неправильной настройкой среды IDE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...