CURRENT_USER使用设计一个控制器返回,而不是一个用户TrueClass
-
27-09-2019 - |
题
我使用一个Rails 2.3.8项目设计1.0.8。在我的控制器测试我有:
context "when current_user is admin" do
should "render" do
sign_in Factory(:admin)
get :index
assert_response :success
end
end
和在控制器自身,还有以下的before_filter:
def redirect_if_not_admin
puts current_user
redirect_to root_path unless current_user.try(:admin?)
end
这是从我的测试输出:
true
false
NoMethodError: undefined method `admin?' for true:TrueClass
当我在测试中使用sign_in所以CURRENT_USER是真实的。然而,当我不这样做,CURRENT_USER是零,所以它肯定受到影响。预先感谢任何帮助。
解决方案
我使用的确认!在after_create /构建,而不是在出厂设置的属性和对资源的方法奏效了。当出现在网站上的未经证实的用户(人谁已经签署了,但还没有点击发送给他们的确认链接)CURRENT_USER等于true。
不隶属于 StackOverflow