Dan*_*iel 1 ruby-on-rails devise ruby-on-rails-4
我有两个模型,User和Admin.我想知道是否可以覆盖Devise的Registrations Controller并有两个自定义注册控制器 - 每个模型一个.
我知道可以通过覆盖注册控制器来获得我想要的东西,我只会使用If else语句,但如果我错了,请纠正我.我认为如果可能的话,最好避免使用if else语句.
你可以在另一篇文章中看到我到目前为止所做的事情 - 我有视图范围,并且出于某种原因它使用了错误的视图集.用多种模型设计视图
是的,这是可能的
路线
为两个模型生成Devise时,您必须将其添加到路径中:
#config/routes.rb
devise_for :users
devise_for :admin
Run Code Online (Sandbox Code Playgroud)
Devise实际上使用这些路由来填充其参数,其中一个是controllers参数:
#config/routes.rb
devise_for :users, controllers: { sessions: "sessions", registrations: "registrations" }
devise_for :admin, controllers: { registrations: "admin/session" }
Run Code Online (Sandbox Code Playgroud)
控制器
这将允许您创建控制器以覆盖Devise默认值:
#app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
#Your Code Here
end
#app/controllers/admin/registrations_controller.rb
class Admin::RegistrationsController < Devise::RegistrationsController
#Your Code Here
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |