我正在努力寻找一种自定义方法,authenticate_user!
以便如果用户未登录,它将重定向到测试版注册页面,而不是重定向到登录页面。
有没有一种方法可以通过在authenticate_user!
方法中添加如下内容来有条件地将重定向路径更改为 Beta 版注册页面?
ENV['BETA_MODE'] ? redirect_to beta_signup_path : redirect_to login_path
我找到了针对此处首次提到的https://groups.google.com/forum/#!topic/plataformatec-devise/qymDM9u9n6Y的修复程序。
我定义了一个自定义身份验证失败类,config/initializers/devise.rb
如下所示:
config.warden do |manager|
manager.failure_app = CustomAuthenticationFailure
end
这样做,我创建了一个名为文件后custom_authentication_failure.rb
在/vendor
。该文件的内容如下所示:
class CustomAuthenticationFailure < Devise::FailureApp
protected
def redirect_url
ENV['BETA_MODE'] ? beta_signup_path : new_user_session_path
end
end
我还需要将其添加到 中config/application.rb
,因为它尚未存在:
config.autoload_paths += %W(#{config.root}/vendor)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句