Rails "не может конвертировать Spreadsheet :: Workbook в строку" - PullRequest
1 голос
/ 10 мая 2011

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

can't convert Spreadsheet::Workbook into String

Это мой код:

require 'spreadsheet'

def create_spreadsheet_from_array(array)
   Spreadsheet.client_encoding = 'UTF-8'
   book = Spreadsheet::Workbook.new
   ...
end

Что я делаю не так?

1 Ответ

0 голосов
/ 10 мая 2011

Насколько я могу судить по вашим ограниченным деталям, ваш код пытается вывести обработанный файл таблицы в шаблон представления.Вам нужно использовать send_file в вашем контроллере.Вот простой пример (но я действительно не рекомендую иметь код электронной таблицы в контроллере):

class MyController < ApplicationController
  def download_xls
    filename = "example.xls"
    tempfile = Tempfile.new(filename)
    workbook = Spreadsheet::Workbook.new
    ...
    workbook.write(tempfile.path)
    send_file tempfile.path, :filename => filename
  end
end
...