我已经生成了额外的设计控制器,我想修改注册控制器,只允许访问该控制器上的新建,创建和删除选项。我实现了一个方法super_user?
,它根据用户的super_user状态返回一个布尔值。问题定制设计控制器:require_no_authentication
def super_user?
if user_signed_in?
current_user.super_user == true ? true : false
else
false
end
end
然后在控制器I重定向并且如果super_user
方法返回false呈现闪光消息。当没有用户登录或没有超级用户能力的signed_in用户尝试访问sign_up页面时,他们按计划重定向。
def new
if super_user?
super
else
redirect_to root_url
flash[:warning]= "Only Administrators can add accounts"
end
end
然而,当与SUPER_USER能力的一个用户登录他们将被重定向到首页,这消息被记录到控制台:
Filter chain halted as :require_no_authentication rendered or redirected
从我的理解,同时研究这个话题,这方法是Devise的一部分,用于重定向已经从sign_up和sign_in页面登录的用户,因为他们实际上已经是用户。但在我的情况下,我希望超级用户登录后能够访问sign_up页面来为其他用户进行登录。有谁知道我如何解决这个问题?