【问题标题】:FactoryGirl Rspec ActionView::Template::Error: undefined method for nil:NilClassFactoryGirl Rspec ActionView::Template::Error: nil:NilClass 的未定义方法
【发布时间】:2011-05-17 18:47:53
【问题描述】:

我是 Rails 新手,正在尝试尝试 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 吗?

我该如何处理?

【问题讨论】:

  • 如果@user 是管理员,我会说他经过测试,所以看起来@user 为零。

标签: ruby-on-rails rspec2


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多