Rails - 在Devise中禁用“already_authenticated”重定向

时间:2013-11-26 02:38:26

标签: ruby-on-rails ruby devise ruby-on-rails-4

我需要我的Rails应用程序才允许用户:admin能够访问sign_up页面并添加用户。但是,如果有人登录(管理员或其他人),Devise会重定向他们并显示绑定到already_authenticated错误的“已登录”消息。

我知道还有其他更强大的方法,比如创建一个新的控制器来覆盖Devise中的标准控制器,但是因为我对Rails相当新,而且我当前的需求很小,我只是想禁用“yet_authenticated”完全重定向。然后,我可以轻松地在sign_up页面的顶部添加一个“if”语句,以保持常规用户不在其中,但仍然允许那些具有:admin属性的人通过。我可以使用sign_in页面执行相同的操作,并使用“if signed_in?”启动它。查询用户当前是否已登录并根据需要自行重定向。很容易(我想)。

我一直在倾注Devise文档和他们的lib文件,但是无法确切地找到这个重定向的处理位置,如果这确实是它正在做的事情。

感谢任何帮助,并提前感谢您。

1 个答案:

答案 0 :(得分:0)

重定向位于:https://github.com/plataformatec/devise/blob/master/app/controllers/devise/sessions_controller.rbhttps://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb

prepend_before_filter :require_no_authentication, :only => [ :new, :create ]

从源代码中可以看出,无法使用配置选项禁用它。唯一的方法是覆盖适当的控制器。