【发布时间】:2013-11-26 02:38:26
【问题描述】:
我需要我的 Rails 应用程序只允许具有 :admin 的用户能够访问 sign_up 页面并添加用户。但是,如果有人登录(管理员或其他方式),Devise 会重定向他们并显示绑定到 already_authenticated 错误的“已经登录”消息。
我知道还有其他更强大的方法可以解决这个问题,比如创建一个新的控制器来覆盖 Devise 中的标准控制器,但是因为我对 Rails 还很陌生,而且我目前的需求很小,我只是想禁用“already_authenticated”完全重定向。然后,我可以轻松地在 sign_up 页面的顶部添加一个“if”语句,以阻止普通用户进入,但仍然让具有 :admin 属性的用户通过。我可以对 sign_in 页面做同样的事情,并以“if signed_in?”开头。查询以查看用户当前是否已登录并根据需要自行重定向。简单易懂(我认为)。
我一直在翻阅 Devise 文档及其 lib 文件,但无法准确定位处理此重定向的确切位置,如果这确实是它正在做的事情的话。
感谢您的任何帮助,并提前感谢您。
【问题讨论】:
标签: ruby-on-rails ruby devise ruby-on-rails-4