2

我有一些测试需要用户登录。当我自己运行控制器测试时,它通过了,一切都是绿色的。如果我运行rspec spec/controllers一些测试失败并出现以下错误:

Failure/Error: get :my_modal, :format => :js
 NoMethodError:
   undefined method `authenticate!' for nil:NilClass

任何提示如何解决这个问题?

4

1 回答 1

0

一旦我遇到这样的错误。因此,当我告诉你我的故事时,你不会与我们分享更多细节,希望你以后能更容易地发现你的错误。

在我的 App 2 类可以登录。一个“用户”和一个“主题”。我尝试进行身份验证,因此用户只能访问与用户相关的站点,而主题只能访问应用程序中与主题相关的部分。

我遇到的第一个错误是您的错误。但我修复了它,并会尝试向你解释我是如何做到的。如果用户已登录,我的应用程序不知道与主题相关的身份验证方法。反之亦然,如果在我的应用程序中签名的主题不知道与用户相关的身份验证方法(我要求 User.user_id 或 Topic.be_topic?为真)

解决这个问题的线索是:我创建了一个名为“user_signed_in”的方法,并通过一个 IF 方法运行身份验证。

IF user_signed_in
  user.user_id > 0
ELSE
  topic.be_topic == true
END

希望对您有所帮助。我是 Rails 新手,请原谅我缺乏更深入的知识。

于 2013-02-24T02:14:58.140 回答