how to pass the parameters as request boy in ruby on rails

  Kiến thức lập trình

here is my controller method ,but when commiting if params[:commit] == “パッケージチェック”
I want to pass the params as request body not through url, which has resulted in 404 with an error message
upstream sent too big header while reading response header from upstream

here is my controller cretae method

    @package_type_ids = params[:package_type_ids].split("rn")
    @order = PackagesTran.new packages_tran_params
    packages = Package.where("package_type_id IN (?)", @package_type_ids)
    if packages.pluck(:package_type).uniq.count > 1
      @notice = "異なる種類のパッケージが混ぜています"
      return redirect_to packages_trans_path
    end

    if params[:commit] == "パッケージチェック"
      return redirect_to new_packages_tran_path(:package_type_ids => @package_type_ids.join(','), :post_no => @order.post_no, :address => @order.address, :post_company => @order.post_company, :track_id => @order.track_id, :comment => @order.comment)
    end
    @order.admin_user_id = current_admin_user.id
    @order.save!

    # update card trans request id
    @packages = Package.where("tran_id IS NULL AND package_type_id IN (?)", @package_type_ids)
    if @packages
      @packages.each do |p|
        p.update! :tran_id => @order.id
      end
    end
    @packages = Package.where("tran_id IS NULL AND package_type_id IN (?)", @package_type_ids).paginate(:page => params[:page], :per_page => 20) 
    redirect_to packages_trans_path
  end
private
    def new_packages_tran_params
      params.permit(:post_no, :address, :post_image, :post_company, :track_id, :status, :comment)
    end
    def packages_tran_params
      params.require(:packages_tran).permit(:post_no, :address, :post_image, :post_company, :track_id, :status, :comment, :last_operated_uesr_id, :sent_at, :delivered_at)
    end```


```def new
    @order = PackagesTran.new new_packages_tran_params
    @package_type_ids = params[:package_type_ids] ? params[:package_type_ids].split(",") : []
    packages = Package.where("package_type_id IN (?)", @package_type_ids)
    if packages.pluck(:package_type).uniq.count > 1
      @notice = "異なる種類のパッケージが混ぜています"
      return
    end
    @pre_packages = packages.paginate(:page => params[:page], :per_page => 20)
    if @pre_packages.present? and @pre_packages.first.half_black?
      @order.post_no = @pre_packages.first.agent.mail if @pre_packages && @pre_packages.first && @pre_packages.first.agent
      @order.address = @pre_packages.first.agent.address if @pre_packages && @pre_packages.first && @pre_packages.first.agent
    else
      @order.post_no = @pre_packages.first.user.post_no if @pre_packages && @pre_packages.first && @pre_packages.first.user
      @order.address = @pre_packages.first.user.address if @pre_packages && @pre_packages.first && @pre_packages.first.user
    end
  end```

LEAVE A COMMENT