我刚开始使用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
Run Code Online (Sandbox Code Playgroud)
Tim*_*ell 60
在模型名称之前添加项目名称(也就是模型文件第一行的包名称).
grails generate-all projectname.Class
Run Code Online (Sandbox Code Playgroud)
经过一个小时的头部刮擦和谷歌搜索,这是最终为我工作的那个.
参考:http://grails.1312388.n4.nabble.com/Generate-Scaffold-Scripts-Don-t-Work-Getting-No-domain-class-found-Error-td2017858.html#a2017880
从1.2.2开始,Grails在默认为项目名称的包中创建工件 - 请参阅http://jira.codehaus.org/browse/GRAILS-5713 所以你需要运行
grails generate-all srapp.Srmodel
- Burt
小智 10
它不是projectname.Class,它必须是dirname.classname.
例如:您的项目名称是Helloworld,目录是"grails-app/domain/helloworld/User.groovy".所以,命令是"grails generate-all helloworld.User",但不是"Helloworld.User"
跑:
grails clean
Run Code Online (Sandbox Code Playgroud)
然后重新运行该generate-all
命令.
参考:http://parasjain.net/2009/06/23/grails-no-domain-class-found-for-name-please-try-again-and-enter-a-valid-domain-class-name/