2012-05-24 46 views
0

我有这个愚蠢的东西......我敢肯定我只是想念一些明显的东西,但yahoogling没有解决问题。Rails生成脚手架 - > NameError:未初始化的常量

所有我能做的就是

rails new TestApp 

cd TestApp 
rails generate scaffold User name:string age:integer 
bundle exec rake db:create 
bundle exec db:migrate 

工作正常。

但是当我去IRB时,没有用户!

u = User.first 
    NameError: uninitialized constant User 
    from (irb):3 
    from /usr/bin/irb:12:in `<main>' 

这里有什么问题?

干杯

回答

8

不要使用内部评级法,而不是:

rails console 

这将对你的项目进口的每一个模型。

+0

我建议你添加User.create位到你的答案,因为它也是OP代码中的问题。这样,有这个问题的其他人将立即看到整个答案,而不仅仅是部分答案。 – vlasits

+0

感谢您的建议@vlasits,但我认为问题的问题只是模型用户和每个钢轨依赖没有被加载,所以如果你尝试使用它,irb会引发异常。如果你在Rails控制台中调用User.first,你不会得到任何错误,只是一个空列表(或者一个空值,现在不记得) – davids

+0

是的。你是对的,错误的原因是rails应用程序没有加载,但OP期望User.first会产生一个非空的响应(“但是当我去IRB时,没有用户! )。无论如何,适合自己,你的*是*正确答案。 – vlasits

2

您尚未创建一个用户,你所使用的rails console老式IRB代替。

打开rails console和尝试:

User.create(:name => "Jimmy", :age => 14) 

然后尝试

u = User.first 
+0

也正确的,谢谢。只需几秒钟。 – EasierSaidThanDone

+0

是的,@davids无论如何都值得它,因为我的第一个想法是User.create之一,只有当我看到他的答案后,我添加了滑轨控制台位。:)你需要两个都得到快乐,但他是更重要的建议。 – vlasits

相关问题