どうしても必要になるまで、Deviseコントローラーをオーバーライドせずに、複数のスコープでDeviseを使用しようとしています。やっとコントローラーをオーバーライドしなければならないところまで来たのではないかと思います。
私には、教員、教授、学生という3つの異なるポータル/スコープがあり、それらはすべてユーザーデバイスモデルを使用しています。これらのスコープにはそれぞれ、独自のデバイスビューとカスタムサインインテンプレートがあります。
私が抱えている問題は、サインインしているスコープに関係なく、同じ確認メールテンプレートを取得することです。取得し続けるのは、routes.rbファイルで定義されている最初のテンプレートです。例えば:
devise_for :students, :class_name => 'User',
:path_names => { :sign_in => 'login', :sign_out =>'logout', :sign_up => 'signup' }
resources :students
devise_for :faculty, :class_name => 'User',
:path_names => { :sign_in => 'login', :sign_out =>'logout', :sign_up => 'signup' }
resources :faculty
devise_for :professors, :class_name => 'User',
:path_names => { :sign_in => 'login', :sign_out =>'logout', :sign_up => 'signup' }
resources :professors
devise_for :users,
:path_names => { :sign_in => 'login', :sign_out => 'logout',:sign_up => 'signup' }
resources :users
確認メールを受け取るたびに、学生確認メールテンプレートが使用されます。教員を一番上に移動すると、教員のメールなどが届きます。
Deviseをオーバーライドせずに、各スコープにそれぞれの確認電子メールテンプレートを送信させる方法はありますか?