Ошибка чтения: #> - PullRequest
       2

Ошибка чтения: #>

0 голосов
/ 20 сентября 2018

Привет, я передаю большие данные с помощью Rails для загрузки CSV-файла с Rails 5. Я получаю сообщение об ошибке Read error: #<NoMethodError: undefined method bytesize 'для #> `.Мой метод экспорта:

def export
  file_name_prefix = ((@filter.resource.respond_to?(:csv_name)) ? @filter.resource.csv_name : @filter.resource.name.pluralize)
  file_name = "#{file_name_prefix}_#{Time.now.strftime("%d_%b_%Y-%H_%M_%S")}.csv"
  headers["Content-Type"] = "text/csv; charset=utf-8; header=present"
  headers["Content-Disposition"] = "attachment; filename=\"#{file_name}\""
  erroneous_call_to_proc = false
  utf8_byte_order_mark = "\xEF\xBB\xBF"
  self.response_body = proc { |response, output|
    unless erroneous_call_to_proc
      output.write(utf8_byte_order_mark + @filter.resource.csv_headers.join(',') + "\n")
      @filter.resource.find_each_with_order({:filtered_resource => @filter.filter_data}) { |u| output.write(u.to_s) }
    end
    erroneous_call_to_proc = true
  }
end

Когда моя загрузка началась, я получил эту ошибку на консоли.Я также попробовал новый способ следующим образом:

def export
  headers['X-Accel-Buffering'] = 'no' # Stop NGINX from buffering
  headers["Cache-Control"] = "no-cache" # Stop downstream caching
  headers["Transfer-Encoding"] = "chunked" # Chunked response header
  headers.delete("Content-Length") # See one line above

  self.response_body = Enumerator.new do |lines|
    # Uses ActiveRecord Batch API to find records efficently
    @filter.resource.find_each do |record|
      lines << record.to_csv
    end
  end
end

, но я получил ту же ошибку для массива Read error: #<NoMethodError: undefined method bytesize 'для [10000]: Array> `Пожалуйста, помогите мне, как я могу это исправить.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...