[RAILS]:注册后重定向到特殊路径

时间:2018-08-13 15:11:04

标签: ruby-on-rails devise path registration

我在那里, 我开发了Rails应用,注册后显示特殊路径时遇到问题。 我的用户具有属性:status,该属性填写在我的注册表单中。如果选中此属性(true),则我想显示payout_method_path,但是如果我想重定向到root_path,则为false。 我有以下错误: RegistrationsController#create

中的AbstractController :: DoubleRenderError

这是我的代码。 寻求帮助...:-)

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

结束

1 个答案:

答案 0 :(得分:0)

要防止在devise中调用默认重定向,您将需要在函数中添加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

以上功能将失败。但是,在重定向之后添加一个返回值(如下所示)将导致该函数暂停并阻止其他重定向的执行。

示例(正确的方法):

def my_function
     if true == true
         redirect_to different_path
         return
     end
     redirect_to root_path
end