在此操作中多次调用渲染和/或重定向。您只能调用渲染或重定向,并且每个操作问题最多调用一次

问题描述 投票:0回答:1

当我使用分页按钮或使用看板卡中的记录栏更改页面时,当我尝试在控制器的同一操作中进行渲染和重定向时,会在 Ruby on Rails 中出现 DoubleRenderError 。正如错误所示,每个操作只能调用一次 render 或 redirect_to

  def index
    session[:current_page] = "all_request"
    default_per_page = 15
    @per_page = params[:per_page] || session[:per_page] || default_per_page
    session[:per_page] = @per_page
    @q = ClientRequest.includes(:resource_infos, :developers).page(params[:page]).per(@per_page).ransack(params[:q])
    if (params[:q] && @filter_per_page_value = params[:q][:per_page_eq]) != nil
      @per_page = @filter_per_page_value
      @q = ClientRequest.includes(:resource_infos, :developers).page(params[:page]).per(@per_page).ransack(params[:q])
    end
    @client_requests = @q.result

    kanban_view_details
    render_partials
  end



  def kanban_view_details
    kanban_column_data = KanbanColumn.in_order_of(:name, KanbanViewHelper::KANBAN_COLUMN_ORDER.keys)
    @grouped_kanban_columns = {}
    kanban_column_data.each do |kanban_column|
      custom_sorting_expression, sorted_records = generate_sorted_records(kanban_column)
      pagy, client_requests = pagy_countless(sorted_records, items: 6, page_param: kanban_column.name)
      @grouped_kanban_columns[kanban_column] = [pagy, client_requests]
    end
    load_cache
    @pagy, @kanban_columns = pagy_countless(kanban_column_data, items: 9)
  
    if params[:page]
      render "scrollable_list"
    elsif params[:load]
      render partial: "kanban_views/common_view/common_kanban_page"
    end
  end


  def render_partials
    kanban_view_details
    partial_name = params[:name]
    if partial_name == "classic_view"
      render partial: "classic_views/classic_view"
    elsif partial_name == "kanban_view"
      load_cache
      render partial: "kanban_views/common_view/common_kanban_page", locals: { client_request_cache: @client_request_cache }
    end
  end
ruby-on-rails ruby controller http-redirect ruby-on-rails-7
1个回答
0
投票

我认为您正在调用 kambas 中的渲染和索引中的最终渲染。只需更改代码,使其呈现 kambas 之后有一个返回,以防止索引返回

© www.soinside.com 2019 - 2024. All rights reserved.