Я получаю нулевую ссылку на объект, когда я не ожидаю этого -ROR - PullRequest
0 голосов
/ 17 января 2012

при обновлении базы данных из консоли rails с помощью следующих команд:

user=User.first
  User Load (0.4ms)  SELECT "users".* FROM "users" LIMIT 1
=> nil 

А затем, когда я обновляю ее с помощью

user.update_attributes(:email => "example@railstutorial.org", :password => "foobar", :password_confirmation => "foobar")`

, я получаю эту ошибку:

NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.update_attributes

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

1 Ответ

4 голосов
/ 17 января 2012

User.first возвращает nil, поэтому вы не получите объект, потому что в базе данных нет объекта!И nil не имеет update_attributes методов, потому что это наследуется ActiveRecord::Base.Ваша проблема в том, что в вашей базе данных нет данных!

...