要在我的注册流程中添加一些自定义逻辑,我已经覆盖默认的Devise注册控制器,如下所示:
class RegistrationsController < Devise::RegistrationsController
def new
super
end
end
# app/config/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}
以上工作正常。
现在,我正在尝试创建不同的注册视图(可能会路由为/corporate/sign_up
或/personal/sign_up
,其表单都会提交给我的注册控制器。
但是,通过在注册控制器内调用super
,如果存在任何验证错误(例如已经采取的电子邮件),则会将重定向设计为/users
,这会加载我的原始注册视图。如何调整此系统以重定向到自定义注册页面,该页面启动了对我的注册控制器的调用?
我能找到的唯一解决方案是在这里复制所有设计注册控制器逻辑,只返回错误而不是重定向。
对此有什么更好的解决方案?