2012-05-31 4 views
2

Это, вероятно, очень просто: я создаю книгу (например, электронную таблицу) с помощью Spreadsheet gem и просто хочу отправить данные Excel непосредственно клиенту без необходимости записи в файл в первую очередь.Rails, таблица электронных таблиц: как выводить данные таблицы непосредственно клиенту?

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

Оптимально, я хотел бы просто позвонить send_data с данными о книге в блоке respond_to :xls.

Любые идеи?

ответ

1

write Метод Рабочего журнала принимает любой путь или объект IO, поэтому вместо передачи ему путь к файлу или файла, который вы могли бы передать его StringIO, что-то вдоль линий

require 'stringio' 
class MyController < ApplicationController 
    def someaction 
    ... 
    buffer = StringIO.new 
    book.write(buffer) 
    buffer.rewind 
    send_data buffer.read 
    end 
end 
+0

Ах, конечно. - спасибо ! Я думал, что это, наверное, что-то простое – Flambino

Смежные вопросы