我一直在努力使用Groovy工具套件来教自己Grails。
GGTS 3.6.4 Grails 2.4.4 JDK 1.8.0_45
我在书中的第92页,有两个问题:
我的猜测是,问题在于我没有将DataSource.groovy文件更改为'update'而不是'create-drop',而是将DB从内存中取出。
我还没有测试这个理论,因为Grails控制台还在运行,这导致了我的第二个错误。
每次,我都会收到一个"EOF预期“错误:
1 compilation error:
expecting EOF, found 'com' at line: 1, column: 28这两个错误似乎没有关系,我不只是跳过它,我很想了解发生了什么.
任何帮助都将不胜感激。
发布于 2015-10-27 20:17:00
DataSource.groovy文件到'update'而不是'create-drop',并将DB从内存中取出。
这是假设您已经将数据源配置为连接到真正的数据库。
我可以看到hbm2ddl是上面的日志,对于内存DB中的内部日志来说,它应该是'create-drop'。
DataSource.groovy文件到'update'告诉您的应用程序只更新现有表,这将不会创建任何新表。
在实际应用程序连接到MySQL的情况下。此设置将等同于手动更新数据库和创建开发中设计的任何新表。
DataSource.groovy文件到'create-drop'的名称是这样的,它将创建新的表和删除条目,因此在开发环境中,甚至在测试等其他环境中,您可能很乐意将它放在create上,让grails生成表。
需要注意的唯一一件事是,如果您假设您有某个域类,并且有一个
Boolean isValid
static constraints {
isValid(nullable:false)
}如果稍后决定它实际上应该是空的,在MySQL示例中,您将不得不登录并手动调整它,因为它已经创建了。在内联内存(您的例子)中,谁关心下一个run= next。
关于:create-scaffold-controller
这是一个新的,http://grails.github.io/grails-doc/2.4.4/ref/Command%20Line/create-scaffold-controller.html它看起来是正确的,你正在执行什么。
但是,如果我正确地理解了(我还没有开始深入研究该命令的作用),就可以简化或扩展这个范围,但是手动执行这样的操作肯定不会太远。
grails create-controller com.grailsinaction.User
然后转到user类并执行以下操作:
class UserController {
static scaffold = true
}为每个文档保存重复,然后继续使用这些文档。
在这里了解有关脚手架概念的更多信息:
http://grails.asia/grails-tutorial-for-beginners-scaffolding/
http://tutorials.techmytalk.com/2014/07/19/grails-scaffolding-controllers-and-views/
另外,如果您使用的是ggts,请用鼠标右键遍历域类,选择grails,生成控制器和视图。
这将是脚手架的替代方案,脚手架就是脚手架提供给您的动态内容,然后生成,供您使用和编辑。这是进入grails的好方法,因为它为您提供了您可以看到/编辑和学习的东西。
脚手架只是隐藏了所有这些,并且是隐藏生成的东西的整洁的方法。
https://stackoverflow.com/questions/33370389
复制相似问题