私は学校ベースのアプリケーションで重大な問題に遭遇しています。Admin、Student、Teacherの役割ベースのシステムのように設定したいと思います。私は認証のためにdeviseを使用し、認可のためにcancanを使用しました。事は私がどこから始めるべきではないかということです。私はdeviseユーザーモデルを追加し、フィールドロールを追加しました。私はロールベースの認可のためにthisに続いた。それは動作しますが、ドロップダウンで教師の役割を選択してStudent資格でログインしようとすると、決して役割を検証しません。それは学生としてログインします。選択したロールをログインフォームで検証したいと思います。ログイン役割による認証が有効でない
これまでのところ、ユーザーモデルをデバイスモデルとして使用しています。 には、Student Model、Teacher Model、およびAdmin Modelがあります。すべての生徒、教師、管理者はユーザーに属します。
Userモデルでclass User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :admins
has_many :students
has_many :teachers
ROLES = %i[admin teacher student]
end
私の工夫登録ビューで
<%= f.collection_select(:role, User::ROLES, :to_s, lambda{|i| i.to_s.humanize}) %>
もないと私はすべての学生、教師と管理のための工夫モデルを使用するようにしたいですか?もしそうなら、私はどのようにそれを完了させるのですか?どんな助けや提案も役に立ちます。前もって感謝します。