【问题标题】:Rails Devise: authenticate either two modelsRails Devise:验证两个模型
【发布时间】:2021-01-26 07:46:37
【问题描述】:

我正在构建具有三种设计模型的 Rails 应用程序:管理员、教师、学生。 我想创建一个管理员和教师可以访问的页面。

我知道如何创建一个角色的用户可以访问的页面。喜欢

before_action :authenticate_model!

但是当我想检查管理员或老师的身份验证时,我该怎么做。

自动重定向路径可以固定一个。例如,如果用户在未登录的情况下访问该页面,则该用户将被重定向到教师的登录页面,其中包含指向管理员的超链接。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby devise


    【解决方案1】:

    我认为您可以使用devise_group 选项。

    示例:

    inside BlogsController (or any other controller, it doesn't matter which):
      devise_group :blogger, contains: [:user, :admin]
    
    Generated methods:
      authenticate_blogger!  # Redirects unless user or admin are signed in
      blogger_signed_in?     # Checks whether there is either a user or an admin signed in
      current_blogger        # Currently signed in user or admin
      current_bloggers       # Currently signed in user and admin
    
    Use:
      before_action :authenticate_blogger!              # Redirects unless either a user or an admin are authenticated
      before_action ->{ authenticate_blogger! :admin }  # Redirects to the admin login page
      current_blogger :user                             # Preferably returns a User if one is signed in
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多