【问题标题】:How to redirect different different controllers action after sing_in from devisesing_in 从设计后如何重定向不同的不同控制器动作
【发布时间】:2017-02-18 20:06:07
【问题描述】:

我是 ROR 的新手,我使用的是 Rails 5 版本,我已经成功地从 devise 创建了登录功能。

我正在使用用于登录、登录等的设计。

我创建了三个角色:super_adminmanagermoderator

super_admin 拥有所有管理权限,但其他人没有。

get 'manager/dashboard', :as => 'manager_dashboard'
get 'moderator/dashboard', :as => 'moderator_dashboard'
get 'users/dashboard', :as => 'users_dashboard'
root "home#index"
devise_for :users 

我想在登录后使用 devise 重定向到不同的控制器操作。

  • 登录后的超级管理员重定向用户#dashboard。
  • 登录后的经理重定向 manager#dashboard。
  • 版主登录后重定向版主#dashboard。

【问题讨论】:

    标签: ruby-on-rails redirect devise ruby-on-rails-5


    【解决方案1】:

    你想使用after_sign_in_path

    在您的ApplicationController 中,定义一个方法after_sign_path_for(resource)

    def after_sign_in_path_for(resource)
      if resource.super_admin?
        users_dashboard_path
      elsif resource.manager?
        manager_dashboard_path
      else
        moderator_dashboard_path
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多