FactoryGirl Rspec ActionView :: Template :: Error: неопределенный метод для nil: NilClass - PullRequest
1 голос
/ 17 мая 2011

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

У меня есть пользовательская модель с атрибутом admin, который по умолчанию имеет значение 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?

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

1 Ответ

3 голосов
/ 18 мая 2011

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

def admin?(user)
  if not user.nil?
    return user.admin
  end
  return false
end
...