Приложение Grails не допускает изменения значений, несмотря на строительные леса - PullRequest
0 голосов
/ 09 января 2019

Я создал простое приложение Grails, подключающееся к таблице в базе данных Oracle 12, которая должна обеспечивать CRUD для данных там. Итак, у меня есть простой класс модели, как это:

package moduleprototype

class ConfigTest {
    int configid
    String name
    String type
    String value
    String description
    int status

    static constraints = {
        version false
        id column: 'CONFIGID', name:'configid',  type: 'integer'
    }
}

И контроллер:

package moduleprototype

class ConfigTestController {

    static scaffold = ConfigTest
}

Но когда я перехожу к контроллеру в моем браузере, когда все данные из таблицы config_test отображаются правильно, это все обычный текст в таблице, а не кликабельные ссылки для каждого значения, которые позволят вам изменить их ( которые они должны быть в соответствии с официальным руководством). Это почему?

В контроллере включены леса, поэтому теоретически он должен работать, и, как я помню из учебного приложения, этого было достаточно, чтобы автоматически разрешить интерфейс модификации в браузере, поэтому я предполагаю, что причина в том, что я Используете внешнюю базу данных вместо встроенной? Как я могу это исправить, чтобы все значения снова были кликабельными, модифицируемыми и удаляемыми?

РЕДАКТИРОВАТЬ: Итак, чтобы лучше проиллюстрировать мою проблему, вот пример скаффолдинга из учебного приложения, где в каждой строке каждое значение является ссылкой на страницу /show/, где данное значение может быть изменено или удалено (вот что Я пытаюсь добиться):

enter image description here

Хотя в моем случае все (как ни странно, кроме первого столбца, который является моим идентификатором) - это просто текст. Значения в столбце configid, однако, являются ссылками, но все они просто указывают на себя (т.е. /ConfigTest/index).

1 Ответ

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

Механизм лесов должен найти поле с именем id для работы.

Просто измените класс своего домена на

package moduleprototype

class ConfigTest {
    int id //int configid
    String name
    String type
    String value
    String description
    int status

    static mapping /*constraints*/ = {
        version false
        id column: 'CONFIGID', name:'id' /*name:'configid'*/,  type: 'integer'
    }
}

По крайней мере, это исправило эту ошибку для меня с небольшим тестом с граалями 3.3

...