Ruby 用户:类的未定义局部变量或“内”方法

Ruby 用户:类的未定义局部变量或“内”方法,ruby,activerecord,console,rubygems,Ruby,Activerecord,Console,Rubygems,我正在写一本书来自学RubyonRails。Ruby版本是1.2.3,rubygems版本是1.3.5 我通过ruby脚本/控制台启动控制台并输入: user = User.new(:screen_name => "example", ?> :email => "exampleATexample.com", ?> :password => "example") 但我没有将数据添加到数据库中,而是得到以下结果: NameError: undefined local

我正在写一本书来自学RubyonRails。Ruby版本是1.2.3,rubygems版本是1.3.5

我通过ruby脚本/控制台启动控制台并输入:

user = User.new(:screen_name => "example",
?> :email => "exampleATexample.com",
?> :password => "example")
但我没有将数据添加到数据库中,而是得到以下结果:

NameError: undefined local variable or method 'within' for User:Class from D:/ruby/lib/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1235:in 'method_missing' from ./script/../config/../config/../app/modules/user.rb:13

我真的不明白发生了什么事。非常感谢您的帮助,谢谢

首先,我相信您使用了Rails主版本1.2.3,这是Rails的一个非常旧的版本,不要使用它

第二件事,您输入的命令有错误的Ruby语法。。。请尝试以下方法:

user =User.new(:screen_name => "example", :email => "exampleATexample.com", :password => "example")

第三件事:请粘贴更多的代码……

同样,作为检查

每当Rails中出现与数据库有关的问题时,请确保运行

rake db:migrate
有时,这会让你忘记并导致奇怪的错误

另外,作为旁注。。。我会确保你添加一些验证到你的用户模型,需要用户确认他们的密码和/或电子邮件。这通常是一个很好的做法

validates_confirmation_of :password, :email

通过学习Rails,一切尽在掌握。确保您接受@dvyjones的建议并升级到Rails的最新版本。。。自从v。1.2.3

该命令的语法正确,他只是在多行上输入了该命令,但忘记删除提示。但是是的,你应该安装一个更新版本的rails,现在是2.3.5版。gem安装rails。感谢khelll花时间回答。你是对的,有更多的代码。我不能从shell复制和粘贴,因为它不允许我复制和粘贴。我没想到代码会那么重要,但既然您指出它缺失了,感谢您向我说明代码的每一点对于帮助解决问题是多么重要。我会记住这一点。再次感谢你的帮助。我想你指的是Rails v。1.2.3:user.rb文件的第13行是什么?看起来这就是错误所在。感谢您花时间提供一条建议。这本书附带的网站说,为了避免麻烦,最好还是坚持书中的rails版本,你是对的,而不是ruby:-。但是由于我在坚持旧版本的时候遇到了麻烦,我还是升级并解决社区中的所有问题为好。所以,我会升级。它是哪本书?我之所以这么问,是因为Rails是一个框架,不仅代码发生了变化,最佳实践也发生了变化。使用一本旧书是一个好的开始,但我建议尽量保持更新。没问题的帮助。如果你还需要什么,可以在推特上找到我,@kentf