我正在尝试将 Devise 与多个范围一起使用,而不覆盖 Devise 控制器,直到我必须这样做。我想我可能已经到了最终不得不覆盖控制器的地步。
我有三个不同的门户/范围,分别称为教师、教授和学生,它们都使用用户设计模型。这些范围中的每一个都有自己的设计视图和自定义登录模板。
我遇到的问题是,无论我登录的范围如何,我都会收到相同的确认电子邮件模板。我一直收到的是我的 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
每次我收到确认电子邮件时,它都会使用学生确认电子邮件模板。如果我将教员移到顶部,我将收到教员电子邮件等等。
有没有办法让每个范围发送他们各自的确认电子邮件模板而不必覆盖设计?