我正在使用一本书来自学Ruby-on-Rails。 Ruby版本是1.2.3和rubygems V 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
我真的不明白发生了什么。非常感谢任何形式的帮助,谢谢!
答案 0 :(得分:0)
首先,我相信你主要是Rails v 1.2.3,这是一个非常旧版本的Rails,不要使用它。
第二件事,你输入的命令有错误的Ruby语法......试试这个:
user =User.new(:screen_name => "example", :email => "exampleATexample.com", :password => "example")
第三件事:请粘贴更多代码......
答案 1 :(得分:0)
另外,就像检查一样。
每当Rails中的某些内容与数据库无关时,请确保运行
rake db:migrate
有时这可能会让你失去理智并导致奇怪的错误。
另外,正如旁注...我会确保您为用户模型添加一些验证,要求用户确认其密码和/或电子邮件。这通常是一种很好的做法。
validates_confirmation_of :password, :email
学习Rails一切顺利。确保你接受@ dvyjones的建议并升级到最新版本的Rails ......自1.2.2版以来已经发生了很多变化