4

Grailsの学習を始めたばかりで、Grailsコンソールを使用してデータベースをいじろうとしていますが、実行と実行の間に違いがあることに気付きましgrails consoleた。grailsconsole

grails consoleターミナルから直接起動する場合:

~/Desktop/Grails-lab/racetrack $ grails console
| Compiling 1 source files.....

console

groovy> import racetrack.* 
groovy> def z = new User(userName:"bangkuangwang",fullName:"noge noge",website:"noge.com",email:"email@email.com",bio:"hello world",password:"123123") 
groovy> z.save() 
groovy> println(z.errors) 
groovy> User.count 

grails.validation.ValidationErrors: 0 errors

Result: 1

を使用して起動する場合grailsは、次のようにしconsoleます。

~/Desktop/Grails-lab/racetrack $ grails
| Enter a script name to run. Use TAB for completion: 
grails> console
| Compiling 1 source files.....

console

groovy> import racetrack.* 
groovy> def z = new User(userName:"bangkuangwang",fullName:"noge noge",website:"noge.com",email:"email@email.com",bio:"hello world",password:"123123") 
groovy> z.save() 
groovy> println(z.errors) 
groovy> User.count 

Exception thrown

groovy.lang.MissingMethodException: No signature of method: racetrack.User.save() is applicable for argument types: () values: []
Possible solutions: save(), save(boolean), save(java.util.Map), wait(), last(), any()
at com.springsource.loaded.ri.ReflectiveInterceptor.jlrConstructorNewInstance(ReflectiveInterceptor.java:963)
at racetrack.User.save(User.groovy)
at racetrack.User$save.call(Unknown Source)
at ConsoleScript0.run(ConsoleScript0:3)
at com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231)
at com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231)

Grailsコンソールを起動する2つの方法が異なる動作をする理由を誰かが私に説明できますか?

4

1 に答える 1

0

バグのようです。「grailsコンソール」に固執することをお勧めします。

于 2012-11-16T02:34:05.393 に答える