使用设计用于多个模型

use*_*464 10 ruby-on-rails devise

问题可能不那么复杂,但我很困惑.我有两个用户,即学生和教师,对于那些我想要单独的模型,控制器和视图.我希望老师使用/t/sign_up和学生/s/sign_up.我正在使用设计进行身份验证,我知道这是可能的,因为这是主动管理工作的方式.

pyf*_*l88 14

如果您已经使用设计生成了多个模型和视图,并且只想更改路径名,则可以执行配置config/routes.rb:

devise_for :students, path: 's'
devise_for :teachers, path: 't'
Run Code Online (Sandbox Code Playgroud)

这将取代你的路线,如下所示:

http://localhost:3000/s/sign_up
http://localhost:3000/t/sign_up
Run Code Online (Sandbox Code Playgroud)

如果要根据不同的模型获取视图,可以配置config.scoped_views = true 内部config/initializers/devise.rb文件并为该模型生成视图:

rails g devise:views students

如果要自定义每个控制器,可以生成如下控制器文件:

rails generate devise:controllers students

这将根据型号名称创建控制器,因此您可以在路径中定义它们:

devise_for :students, path: 's', controllers: { sessions: "students/sessions" }