我使用一个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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top