Techioz Blog

複数回レンダリング - レール内で二重レンダリング

概要

この二重レンダリングの問題を回避する方法、複製しようとしましたができませんでした。それでは、以下のコードに問題はあるのでしょうか?

def check_count
  assign_values_from_params
  if count >= failed_count
    render partial: params[:view_name], layout: false and return
  else
    render text: 'works' and return
  end
end


def assign_values_from_params
  # code
  # code
  # code
  if @date.blank?
    redirect_to main_index_path and return
  end

  if @counted_obj != 5
    # call one function
  end
end

また、この方法で何かを試してみるべきですか? ダブルレンダリングエラーレール?

解決策

通話は実行されましたか?レンダーまたはリダイレクトがすでに呼び出されているかどうかを確認します。

コードを次のように変更するとよいでしょう。

def check_count
  assign_values_from_params
  
  return if performed?

  if count >= failed_count
    render(partial: params[:view_name], layout: false)
  else
    render(text: 'works')
  end
end

def assign_values_from_params
  # code

  if @date.blank?
    redirect_to(main_index_path) and return
  end

  # code
end