0

私は 3 つのデバイス モデルを持ってStudentEmployerますAdmin。学生、管理者、雇用者として同時にサインインできないようにしたいです。

それを行うための最良の方法はどのようになりますか?

私のルート

devise_for :admins, only: :sessions

  devise_for :employers,
    controllers: {
      sessions: 'devise/employers_sessions'
    }

  authenticated :employer do
    match 'dashboard' => 'employers#dashboard'
  end

  devise_for :students,
    controllers: {
      registrations: 'devise/students_registrations',
      sessions: 'devise/students_sessions'
    }
4

1 に答える 1

1

それらを 1 つの Warden スコープにマップします。devise スコープは明らかに warden スコープとは異なるものであるため、この用語は少し不適切です。残念なことに、彼らは対応する wiki エントリを書きませんでした。ただし、それについての短い行があります。

Warden では、複数のユーザーが同時にログインできます。スコープを見る

devise はモデルごとに異なるスコープを使用していると思います。ソースに飛び込んで、devise と warden の間のマッピングで使用するスコープがどこに設定されているかを確認すると、それを 3 つのモデルごとに 1 つのスコープに変更できるはずです。これにより、希望する場所に移動できます。

やってみる

devise_for :employers, :singular => :user
devise_for :students, :singular => :user
于 2012-11-18T23:57:39.313 に答える