Ruby on rails rails中与重定向相关的双渲染错误

Ruby on rails rails中与重定向相关的双渲染错误,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的控制器中,如果用户已注销,我将重定向用户。然后我会列出一份专业人士的名单。。如果不存在,也需要重定向到那里。有没有办法解决这个难题 def purchase @style = Style.find(params[:id]) if user_signed_in? && current_user.consumer @professionals = Professional.where(...) if @professionals.e

在我的控制器中,如果用户已注销,我将重定向用户。然后我会列出一份专业人士的名单。。如果不存在,也需要重定向到那里。有没有办法解决这个难题

  def purchase
    @style = Style.find(params[:id])
    if user_signed_in? && current_user.consumer 
      @professionals = Professional.where(...)
      if @professionals.empty?
        redirect_to style_path(@style)
      else
        ...
      end
      ...
    else
      flash[:error] = "Please sign in as a consumer to access this page"
      redirect_to style_path(@style)
    end
  end

尝试添加
并返回
,以使操作返回而不继续。请尝试以下操作:

redirect_to style_path(@style) and return

将以下代码更改为:

  if @professionals.empty?
    redirect_to style_path(@style) and return

希望这会有帮助。谢谢

与上述答案类似,有些人只是更喜欢

return redirect_to style_path(@style)

我觉得不错。你的代码不能同时执行两个重定向命令,所以除非你没有向我们展示所有的代码,否则你不应该得到双重渲染。。。我取出了一些无关的代码,但没有任何东西会影响这个逻辑。你得到的是双重渲染错误吗?一个在if中,另一个在else中。你的代码中真的有
redirect\u重定向到style\u路径(@style)
吗?哈哈,我想这才是真正的问题。不错,弗雷德。