我需要我的Rails应用程序才允许用户:admin能够访问sign_up页面并添加用户。但是,如果有人登录(管理员或其他人),Devise会重定向他们并显示绑定到already_authenticated错误的“已登录”消息。
我知道还有其他更强大的方法,比如创建一个新的控制器来覆盖Devise中的标准控制器,但是因为我对Rails相当新,而且我当前的需求很小,我只是想禁用“yet_authenticated”完全重定向。然后,我可以轻松地在sign_up页面的顶部添加一个“if”语句,以保持常规用户不在其中,但仍然允许那些具有:admin属性的人通过。我可以使用sign_in页面执行相同的操作,并使用“if signed_in?”启动它。查询用户当前是否已登录并根据需要自行重定向。很容易(我想)。
我一直在倾注Devise文档和他们的lib文件,但是无法确切地找到这个重定向的处理位置,如果这确实是它正在做的事情。
感谢任何帮助,并提前感谢您。
答案 0 :(得分:0)
重定向位于:https://github.com/plataformatec/devise/blob/master/app/controllers/devise/sessions_controller.rb和https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb
prepend_before_filter :require_no_authentication, :only => [ :new, :create ]
从源代码中可以看出,无法使用配置选项禁用它。唯一的方法是覆盖适当的控制器。