NoMethodError in UserController#register undefined method 'save' for nil:NilClass
Ошибка выдается, потому что вы звоните save
на nil
;и это потому, что nil
объект не имеет этот метод. save
- это метод экземпляра, принадлежащий классу ActiveRecord::Base
.
Причина, по которой @user
равен nil, заключается в том, что @user
является переменной экземпляра в классе UserController
, который вы ему не предоставили. стоимость. Любая переменная, начинающаяся с @
внутри класса, является переменной экземпляра в Ruby.
Чтобы решить эту проблему, вы должны установить значение @user
, и в этом случае это должен быть экземпляр User
. Вы можете создать новый пользовательский объект, выполнив @user = User.new(user_params)
, или выбрать запись из базы данных, выполнив @user = User.find(<some_id>)