[RAILS]: redirect_to 注册后的特殊路径
[RAILS]: redirect_to special path after sign-up
我在,
我开发了一个 rails 应用程序,但在注册后显示特殊路径时遇到问题。
我有一个属性 :status 用于我的用户,该属性已填写在我的注册表单中。如果选中此属性(true),我想显示 payout_method_path ,而它是 false 我想重定向到 root_path。
我有以下错误:
AbstractController::DoubleRenderError 在 RegistrationsController#create
这是我的代码。
感谢您的帮助...:-)
class RegistrationsController < Devise::RegistrationsController
def after_sign_up_path_for(resource)
if current_user.status?
redirect_to payout_method_path
flash[:notice] = "Your account is verified before being a seller"
else
redirect_to root_path
end
结束
为了防止在设计中调用默认重定向,您需要在函数中添加一个 return 语句,如下所示:
def after_sign_up_path_for(resource)
if current_user.status?
flash[:notice] = "Your account is verified before being a seller"
redirect_to payout_method_path
else
redirect_to root_path
end
return
end
此逻辑适用于您可以链接重定向的任何应用程序。
例如(错误的方式):
def my_function
if true == true
redirect_to different_path
end
redirect_to root_path
end
以上功能会失败。但是,在重定向(如下所示)之后添加 return 会导致函数停止并阻止其他重定向的执行。
示例(正确方式):
def my_function
if true == true
redirect_to different_path
return
end
redirect_to root_path
end
我在, 我开发了一个 rails 应用程序,但在注册后显示特殊路径时遇到问题。 我有一个属性 :status 用于我的用户,该属性已填写在我的注册表单中。如果选中此属性(true),我想显示 payout_method_path ,而它是 false 我想重定向到 root_path。 我有以下错误: AbstractController::DoubleRenderError 在 RegistrationsController#create
这是我的代码。 感谢您的帮助...:-)
class RegistrationsController < Devise::RegistrationsController
def after_sign_up_path_for(resource)
if current_user.status?
redirect_to payout_method_path
flash[:notice] = "Your account is verified before being a seller"
else
redirect_to root_path
end
结束
为了防止在设计中调用默认重定向,您需要在函数中添加一个 return 语句,如下所示:
def after_sign_up_path_for(resource)
if current_user.status?
flash[:notice] = "Your account is verified before being a seller"
redirect_to payout_method_path
else
redirect_to root_path
end
return
end
此逻辑适用于您可以链接重定向的任何应用程序。
例如(错误的方式):
def my_function
if true == true
redirect_to different_path
end
redirect_to root_path
end
以上功能会失败。但是,在重定向(如下所示)之后添加 return 会导致函数停止并阻止其他重定向的执行。
示例(正确方式):
def my_function
if true == true
redirect_to different_path
return
end
redirect_to root_path
end