неопределенная локальная переменная или метод "в пределах" для пользователя: класс - PullRequest
1 голос
/ 19 декабря 2009

Я работаю с книгой, чтобы научить себя 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

Я не очень понимаю, что происходит. Любая помощь очень ценится, спасибо!

Ответы [ 2 ]

0 голосов
/ 20 декабря 2009

Также как чек.

Если в Rails что-то не работает с базой данных, обязательно запустите

rake db:migrate

Иногда это может ускользнуть от вас и вызвать странные ошибки.

Кроме того, просто в качестве примечания ... Я бы позаботился о том, чтобы вы добавили в свою модель пользователя некоторые проверки, которые требуют от пользователя подтверждения своего пароля и / или электронной почты. Как правило, это хорошая практика.

validates_confirmation_of :password, :email

Всего наилучшего в изучении Rails. Обязательно прислушайтесь к совету @ dvyjones и обновите до последней версии Rails ... многое изменилось с версии 1.2.3

0 голосов
/ 19 декабря 2009

Во-первых, я полагаю, вы основной Rails v 1.2.3, это очень старая версия Rails, не используйте ее.

Во-вторых, введенная вами команда имеет неправильный синтаксис Ruby ... попробуйте вместо этого:

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

Третье: вставьте больше кода ....

...