我创建了一个简单的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/
页的链接,在此页面中可以修改或删除给定值(是我要实现的目标):
在我的情况下,所有内容(奇怪的是,除了第一列,即我的ID)都是纯文本。尽管configid列中的值是链接,但所有值都指向自身(即/ConfigTest/index
)。
答案 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的小测试为我解决了该错误