ruby-on-rails – 如何定义自定义在两种不同模型的情况下设计失败用户和活动管理员?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何定义自定义在两种不同模型的情况下设计失败用户和活动管理员?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个模型User和ActiveAdmin,我想在其中应用我的设计集成.

我有我的custom_failure.rb如下

class CustomFailure < Devise::FailureApp

  def redirect_url
    login_path
  end

  # def redirect_url
  #   root_path
  # end

  def respond
    if http_auth?
      http_auth
    else
      redirect
    end
  end
end

这似乎很有效.

另外,可以在我的应用程序控制器中定义如:

def after_sign_in_path_for(resource)
  # case resource
    if resource.is_a?(Admin)
      admin_dashboard_path
    else
      root_path
    end
end

def after_sign_out_path_for(resource_or_scope)
  login_path
end

但问题是如何在custom_failure.rb中使用此资源,以便我可以相应地重定向登录用户登录管理员登录?根据当前情况,它总是重定向用户登录页面

解决方法

尝试将custom_failure.rb放入lib文件夹中.然后确保加载文件.您可能会尝试自动加载lib中的所有文件.

然后Redirect to a specific page.

更新:

你必须使用范围来解决这个问题: –

class CustomFailure < Devise::FailureApp 
  def redirect_url 
    if warden_options[:scope] == :user 
      signin_path 
    else 
      new_admin_user_session_path 
    end 
  end 
  def respond 
    if http_auth? 
      http_auth 
    else 
      redirect 
    end 
  end 
end
原文链接:https://www.f2er.com/ruby/266635.html

猜你在找的Ruby相关文章