尽管有脚手架,Grails 应用程序不允许修改值
Grails app not allowing value modifications despite scaffolding
我创建了一个连接到 Oracle 12 数据库中的 table 的简单 Grails 应用程序,该数据库应该为那里的数据提供 CRUD。所以我有一个像这样的简单模型 class:
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
table 中的所有数据都正确显示,但在 table 中都是纯文本,不可点击links 用于允许您更改它们的每个值(根据官方指南,它们 should be)。这是为什么?
脚手架在控制器中打开,因此理论上它应该可以工作,根据我从教程应用程序中记得的内容,这足以让它自动允许浏览器内修改界面,所以我猜这里的原因是我使用的是外部数据库而不是内置数据库?我该如何解决这个问题,以便所有值再次可点击、可修改和删除table?
编辑:为了更好地说明我的问题,这里有一个来自教程应用程序的脚手架示例,其中每一行中的每个值都是 link 到 /show/
页面,其中给定值可以被修改或删除(这是我想要实现的):
而在我的例子中,所有内容(奇怪的是,除了第一列,这是我的 ID)只是纯文本。不过,configid 列中的值是 links,但都指向它自己(即 /ConfigTest/index
)。
脚手架机制需要找到一个名为id
的字段才能工作。
只需将您的域 class 更改为
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 的小测试为我修复了这个错误
我创建了一个连接到 Oracle 12 数据库中的 table 的简单 Grails 应用程序,该数据库应该为那里的数据提供 CRUD。所以我有一个像这样的简单模型 class:
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
table 中的所有数据都正确显示,但在 table 中都是纯文本,不可点击links 用于允许您更改它们的每个值(根据官方指南,它们 should be)。这是为什么?
脚手架在控制器中打开,因此理论上它应该可以工作,根据我从教程应用程序中记得的内容,这足以让它自动允许浏览器内修改界面,所以我猜这里的原因是我使用的是外部数据库而不是内置数据库?我该如何解决这个问题,以便所有值再次可点击、可修改和删除table?
编辑:为了更好地说明我的问题,这里有一个来自教程应用程序的脚手架示例,其中每一行中的每个值都是 link 到 /show/
页面,其中给定值可以被修改或删除(这是我想要实现的):
而在我的例子中,所有内容(奇怪的是,除了第一列,这是我的 ID)只是纯文本。不过,configid 列中的值是 links,但都指向它自己(即 /ConfigTest/index
)。
脚手架机制需要找到一个名为id
的字段才能工作。
只需将您的域 class 更改为
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 的小测试为我修复了这个错误