【发布时间】:2016-06-09 22:39:56
【问题描述】:
我已经生成了额外的设计控制器,并且我想修改 Registrations 控制器以仅允许 super_users 访问该控制器上的新建、创建和删除选项。我已经实现了一个方法super_user?,它根据用户的 super_user 状态返回一个布尔值。
def super_user?
if user_signed_in?
current_user.super_user == true ? true : false
else
false
end
end
然后在控制器中,如果super_user 方法返回false,我会重定向并呈现一个flash 消息。当没有用户登录或没有超级用户权限的已登录用户尝试访问注册页面时,他们将按计划重定向。
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 页面以注册其他用户。有谁知道我该如何解决这个问题?
【问题讨论】:
标签: ruby-on-rails devise