Я работаю через http://railstutorial.org (в настоящее время работаю над разделом 10.4.2 - уничтожение пользователей).
Моя модель User имеет логический атрибут admin
, и в контроллере Users естьнекоторый простой код, использующий этот атрибут:
def admin_user
redirect_to(root_path) unless current_user.admin?
end
Тест RSpec:
describe "as a non-signed-in user" do
it "should deny access" do
delete :destroy, :id => @user
response.should redirect_to(signin_path)
end
end
И ошибка, которую этот тест выдает:
NoMethodError in'UsersController DELETE' destroy 'как не авторизованный пользователь должен запретить доступ' undefined метод `admin? 'для nil: NilClass
Что такое nil: NilClass?Почему я получаю это?
edit : j., Это может помочь:
def sign_in(user)
user.remember_me!
cookies[:remember_token] = { :value => user.remember_token,
:expires => 20.years.from_now.utc }
self.current_user = user
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= user_from_remember_token
end