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所做的任何其他事情,您应该从原始方法复制它