Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 控制器测试在一起运行时失败,在单独运行时通过。这怎么可能?_Ruby On Rails_Ruby_Rspec_Devise - Fatal编程技术网

Ruby on rails 控制器测试在一起运行时失败,在单独运行时通过。这怎么可能?

Ruby on rails 控制器测试在一起运行时失败,在单独运行时通过。这怎么可能?,ruby-on-rails,ruby,rspec,devise,Ruby On Rails,Ruby,Rspec,Devise,我有一些测试需要用户登录。当我自己运行控制器测试时,它通过了,并且一切都是绿色的。如果我运行rspec spec/controllers我的一些测试失败,并出现以下错误: Failure/Error: get :my_modal, :format => :js NoMethodError: undefined method `authenticate!' for nil:NilClass 有什么建议可以解决吗?有一次我遇到这样的错误。因此,在我告诉你我的故事的时候,你不会和我们分

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

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

有什么建议可以解决吗?

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

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

我的第一个错误是你的错误。但是我把它修好了,我会尽力向你解释我是怎么做到的。如果用户已登录,则我的应用程序不知道与主题相关的身份验证方法。反之亦然,如果在我的应用程序中签名的主题不知道与用户相关的身份验证方法(我要求User.User\u id或Topic.be\u Topic?为true)

解决这个问题的线索是:我创建了一个名为“user\u signed\u in”的方法,并在IF方法上运行身份验证

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

希望这能帮到你。我是Rails的新手,请原谅我缺乏更深层次的知识。

我的回答可能对您有用吗?如果是的话,你能投赞成票吗?否则我宁愿删除它。谢谢是否要共享失败的_spec.rb文件?