我刚刚开始使用Groovy / Grails。
我在项目中添加了一个新的域控制器,而generate-controller不喜欢它。
还有其他迹象表明存在问题:如果我运行应用程序,则数据库中实际上没有为此创建表。
我已将DomainController缩减为一个String字段而没有约束,只是为了确保我的规范没有问题。我也尝试重命名它,以防万一有与原始名称(隐私)有冲突的东西。
我确定我的名字正确,并且该文件名为PrivacyOptions.groovy,并且该类内部也称为PrivacyOptions。
这是错误:
Running script /opt/local/grails/scripts/GenerateController.groovy
Environment set to development
Domain class not found in grails-app/domain, trying hibernate mapped classes...
No domain class found for name PrivacyOptions. Please try again and enter a valid domain class name
答案 0 :(得分:60)
在模型名称之前添加项目名称(也就是模型文件第一行的包名称)。
grails generate-all projectname.Class
这是经过一个小时的搔抓和谷歌搜索后,最终为我工作的那个。
从1.2.2开始,Grails会在默认包含的包中创建工件 项目名称 - 请参阅http://jira.codehaus.org/browse/GRAILS-5713 所以你需要运行
grails generate-all srapp.Srmodel
- 伯特
答案 1 :(得分:10)
它不是projectname.Class,它必须是dirname.classname。
例如:您的projectname是Helloworld,目录是“grails-app / domain / helloworld / User.groovy”。所以,命令是“grails generate-all helloworld.User”,但不是“Helloworld.User”
答案 2 :(得分:8)
执行命令
grails clean
然后重新运行generate-all
命令。
答案 3 :(得分:3)
很好的帮助。我在this tutorial之后面临同样的问题,将项目命名为“trip-planner”,Grails将域目录生成为'〜/ trip / planner /'而不是'〜/ trip-planner /'。那么Trip类的generate-all命令应该是'grails generate-all trip.planner.Trip'
以防有人在项目名称中添加“ - ”字符。
答案 4 :(得分:1)
generate-all racetrack.User
因为所有其他grails命令不需要包含程序包名称,因此确实存在一些裤子错误: - )
答案 5 :(得分:0)
我不知道你是如何达到这一点的,但也许this会帮助你克服困难。
我是否正确地假设您使用“grails create-domain-class”来创建PrivacyOptions域对象,并且Groovy脚本出现在您的grails-app / domain目录中?您是否在测试/单元中获得了PrivacyOptionsTests?那通过了吗?你有没有添加包裹?
答案 6 :(得分:0)
关于堆栈跟踪的相关问题不清楚缺少属性:
答案 7 :(得分:0)
generate-all Domainname不起作用,因为需要完整的包名。 我第一次尝试添加一个*,然后你会看到其他调用的域类应该是什么样的。
generate-all *
http://grails.org/doc/latest/ref/Command%20Line/generate-all.html
答案 8 :(得分:0)
必须是dirname.classname。
如果你有一个域类创建了Book,就像这个'grails-app / domain / book / Book.groovy'
它应该是:grails generate-app book.Book
答案 9 :(得分:0)
如果您正在使用Groovy / Grails Tool Suite,只需右键单击您创建的控制器即可查看域名,注意域名的确切大小写,然后右键单击视图并生成视图并输入domainname.viewname
示例,您的控制器名称是RegistrationController,域名是helloworld,您可以右键单击视图并在生成视图对话框中输入值为helloworld.Registration