簡體   English   中英

rails設計登錄模型的檢查類

[英]rails devise check class of logged in model

我有多個模型,使用管理員,學生和顧問等設計

我不想使用角色,因為在這種情況下它會使事情變得復雜。

我想使用一個布局和顯示菜單等取決於類型的模型

= render "shared/#{resource.class}_menu"

有沒有像我們在after_sign_in_path_for等那樣的條件下我可以獲得登錄對象的類。

那么在這種情況下我想要為管理員,學生和顧問提供不同的區域

您可以為每個角色命名,也可以像這樣登錄

#config/routes.rb
Rails.application.routes.draw do

  devise_for :admins, :controllers => { registrations:  'admins/registrations',
                                       sessions:        'admins/sessions',
                                       passwords:       'admins/passwords',
                                       confirmations:   'admins/confirmations'
  }
  authenticate :admin do
    namespace :admins do
      ....
      root :to => 'something#index'
    end
  end

  devise_for : students, :controllers => { registrations:   'students/registrations',
                                           sessions:        'students/sessions',
                                           passwords:       'students/passwords',
                                           confirmations:   'students/confirmations'
  }
  authenticate :student do
    namespace :students do
      ....
      root :to => 'something#index'
    end
  end

現在,您可以為每個命名空間創建設計模型。

#app/controllers/admin_controller.rb
class AdminController < ApplicationController
  before_filter :authenticate_admin!

end


對於Devise控制器,您可以像使用它們一樣使用它們

#app/controllers/users/sessions_controller.rb
class Users::SessionsController < Devise::SessionsController

end

對於基本的應用程序控制器,您可以像這樣使用它們。

#app/controllers/users/somethings_controller.rb
class Users::SomethingsController < UserController
...
end

我希望這能夠幫到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM