Railsアプリケーションには、current_user変数のクラスタイプをチェックするロジックがあります。
logger.debug current_user.class # => Instructor
logger.debug current_user.class == Instructor # => true
case current_user.class
when Admin
logger.debug "Admin"
when Student
logger.debug "Student"
when Instructor
logger.debug "Instructor"
else
logger.debug "Guest"
end #=> "Guest"
Instructor
(コメントに示されているように)クラスタイプであるにもかかわらず、caseステートメントは常にelseフォールバックを評価しているようです。誰かが理由を説明できますか?少し背景を説明するために、Deviseを使用してSTIユーザーモデルのセットアップを実装しています。