ruby-on-rails - 在注册或新会话后设计自定义重定向
问题描述
所以我有一个 RSS 提要,其中包含您可以投票的博客文章,但首先您必须注册或登录才能投票,我正在使用设计来处理这个问题。我去了这个页面在此处输入链接描述
了解如何将默认重定向更改为 request.reffer,即用户在登录或注册之前所在的当前页面,但即使在我将其添加到我的应用程序控制器之后,它仍会重定向回根目录:
class ApplicationController < ActionController::Base
protected
def after_sign_in_path_for(resource)
request.env['omniauth.origin'] || stored_location_for(resource) || root_path
end
end
我是 Rails 和 Web 开发的新手,所以如果有人可以对我进行白痴证明,那将不胜感激。谢谢!
解决方案
您可以通过将 stored_locations_for(resource) 设置为 nil 来走得更远,然后为每个操作设置不同的重定向,即:after_sign_in_path(resource)、after_sign_in_path(resource) 等等。
路线.rb
devise_for :users, controllers: {sessions: 'users/sessions'}
注册控制器.rb
class SessionsController < Devise::SessionsController
protected
def after_sign_up_path_for(resource)
example_path
end
end
推荐阅读
- python-3.x - 如何在 Librosa 音高转换效果中指定 n_fft
- python - Django 注释错误
- css - css flexBox中的文本溢出可以通过简单地添加width:0来解决,但是为什么呢?
- docker - 高山图像构建挂在 matplotlib 上
- logging - 消息日志不通过 logrotate 配置轮换
- azure - 如何在 Azure 中查看入站请求?
- excel - 选项私有模块有什么作用?插件是否可以访问选项私有模块的过程/功能?
- ansible - 如何通过 Ansible playbook 在远程服务器上运行 IBM DB2 绑定命令
- reactjs - React Hooks:无法读取未定义的属性“地图”
- python - 由于找不到模块错误,无法在 python 中运行测试