FactoryGirl Rspec ActionView :: Template ::错误:nil的未定义方法:NilClass

时间:2011-05-17 18:47:53

标签: ruby-on-rails rspec2

我是rails的新手,我正试图尝试TDD。

我有一个用户模型,其默认情况下设置为nil的admin属性和请求模型。

这是我对请求控制器的测试

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 个答案:

答案 0 :(得分:3)

我犯了一个错误。当用户为零时,我试图在我的控制器中调用user.admin。在创建管理字段之前,我创建了一个帮助方法来检查用户是否为nil。

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