Ruby on rails 用于重定向的覆盖设计注册控制器

Ruby on rails 用于重定向的覆盖设计注册控制器,ruby-on-rails,devise,Ruby On Rails,Devise,设计功能需要定制,并创建RegistrationController。 但是,创建操作的默认设置为 super do |resource| end 它本身有点像一个黑匣子,因为它指向超类。很明显,它已连接到重定向。因此: super do |resource| [...] if @user.save? redirect_to some_user_attribute_path else redirect_to a_parameter_based_path end

设计功能需要定制,并创建
RegistrationController
。 但是,创建操作的默认设置为

super do |resource|

end
它本身有点像一个黑匣子,因为它指向超类。很明显,它已连接到重定向。因此:

super do |resource|
  [...]
  if @user.save?
    redirect_to some_user_attribute_path
  else
    redirect_to a_parameter_based_path
  end
end
这是不可能的,因为它自然会产生

AbstractController::DoubleRenderError in Users::RegistrationsController#create
Desive Wiki只处理成功的行动或包罗万象的方法

我们的目标是避免应用程序控制器方法,因为此用例具有非常特定的行为,仅用于根据成功或失败创建用户(在实践中,返回到同一页面,但在失败的情况下,通过
参数[:company][:id]
值代替
@user.company\u id


如何实现这一点?

我认为您应该完全重写该方法,因为您不希望在
产生
之后的方法。因此,您可以这样做:

类注册控制器
注意:如果您需要注册用户或Desive所做的任何其他事情,您应该从原始方法复制它