问题可能没那么复杂,但我很困惑。我有两个用户,即学生和教师,对于那些我想要单独的模型,控制器和视图。我要老师用/t/sign_up
和学生/s/sign_up
。我正在使用devise进行身份验证,我知道这是可能的,因为这就是active admin的工作方式。
发布于 2016-05-10 16:20:08
如果您已经用devise生成了多个模型和视图,并且只想更改路径名称,那么您就可以配置config/ path es.rb:
devise_for :students, path: 's'
devise_for :teachers, path: 't'
它会取代你的路线如下:
http://localhost:3000/s/sign_up
http://localhost:3000/t/sign_up
如果希望拥有基于不同模型的视图,可以在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" }
https://stackoverflow.com/questions/37145991
复制相似问题