尽管有脚手架,Grails应用程序仍不允许修改价值

时间:2019-01-09 10:06:39

标签: java database oracle grails gorm

我创建了一个简单的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表中的所有数据均正确显示,但表中的所有文本均为纯文本,而不是每个值的可点击链接,您可以通过该链接进行更改它们(根据官方指南should be)。这是为什么?

支架在控制器中处于启用状态,因此从理论上讲应该可以正常运行,并且从我在教程应用程序中所记得的情况来看,这足以使其自动允许浏览器内修改界面,因此我猜这里的原因是我在使用外部数据库而不是内置数据库?我该如何解决这个问题,以便所有值都可以再次单击,修改和删除?

编辑:因此,为了更好地说明我的问题,这是教程应用程序中的脚手架示例,其中在每一行中,每个值都是指向/show/页的链接,在此页面中可以修改或删除给定值(是我要实现的目标):

enter image description here

在我的情况下,所有内容(奇怪的是,除了第一列,即我的ID)都是纯文本。尽管configid列中的值是链接,但所有值都指向自身(即/ConfigTest/index)。

1 个答案:

答案 0 :(得分:3)

脚手架机制需要找到一个名为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'
    }
}

至少通过使用grails 3.3的小测试为我解决了该错误