我是Grails的新手,我被困在GORM部分。我试图在这个网站http://grails.asia/grails-tutorial-for-beginners-introduction-to-gorm上关于GORM的教程,首先要做的是创建一个域类。但是,按照那里的说明后,我总是收到下面显示的错误。
我的控制器用于插入记录
ranged_monster
package nba
class PlayerController {
def index() {
//render "It's game time! NBA Game time"
Player p = new Player()
p.fname = "Lebron"
p.lname = "James"
p.position = "Small Forward"
p.age = 30
}
}
答案 0 :(得分:1)
抱歉,我没有看到你的评论:
首先扩展我上面的评论并更好地解释grails控制器行为。我会坚持渲染你有其他选择。
在控制器中声明操作时:
所以我们说
class TestController {
def hello() { }
}
您可能有也可能没有绑定到此示例TestController的domainClass,如果您执行了域类,则{package} /Test.groovy {匹配控制器的命名结构}。
在此示例中,我们没有域控制器,只要您在名为
的视图下创建文件夹,上面的操作就会显示一些内容test/hello.gsp
所以在那个测试文件夹中你创建了hello.gsp,然后放入一些html ..
如果你没有
test/hello.gsp
然后在您的控制器中,您必须定义要渲染的内容。
class TestController {
def hello() {
// render 'some text'
//render template: '/path/to/template', model: [params:params]
render view: '/path/to/gsp', model: [params:params]
}
}
然后你说:
这是我在创建域类播放器时出错的方法 然后把字段名称(fname,lname,position,age),它 成功后,表格播放器与数据库一起创建 字段名称,但当我重新启动运行服务器时,表是 自动删除并且运行服务器返回错误。 有什么问题?
首先,您需要问问自己,您是否配置/安装了一些数据库,以便最初看到它正常工作?
Grails为您提供内置数据库,作为其默认应用程序创建的一部分驻留在您的内存中。简而言之,每个运行应用程序都会触发一个新的数据库。
E2A
注意dbCreate行:
create-drop:在应用程序启动时创建表,然后在关闭时删除
创建:在应用启动时创建所有表
更新:更新现有表格(不会尝试创建任何由您决定的表格)
http://grails.github.io/grails-doc/3.0.x/guide/conf.html
在开发模式下,dbCreate默认设置为“create-drop”,但是 在开发的某个阶段(当然,一旦你去生产) 你需要每次都停止删除并重新创建数据库 你启动你的服务器。