FactoryGirl Rspec ActionView :: Template :: Error: неопределенный метод для nil: NilClass

Я новичок в рельсах и пытаюсь попробовать TDD.

У меня есть модель пользователя с атрибутом администратора, для которого по умолчанию установлено значение nil, и модель запроса.

Вот тест, который у меня есть для моего контроллера запросов

it "should grant access to 'destroy'" do
        req = Factory(:request, :user => @user)
        delete :destroy, :id => req.id
        response.should be_successful
end

Когда я запускаю это, я получаю следующую ошибку:

ActionView::Template::Error:undefined method `admin' for nil:NilClass

Я предполагаю, что это связано с тем, что в моих представлениях есть ссылки, которые отображаются только в том случае, если пользователь владеет ссылкой или является администратором. Итак, я провожу условное тестирование атрибута admin. Мне нужно установить для атрибута admin значение false?

Как мне с этим справиться?


person Cyrus    schedule 17.05.2011    source источник
comment
Я бы сказал, что @user проверяется, если он администратор, поэтому похоже, что @user равен нулю.   -  person Jan Minárik    schedule 17.05.2011


Ответы (1)


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

def admin?(user)
  if not user.nil?
    return user.admin
  end
  return false
end
person Cyrus    schedule 18.05.2011