2

目前我正在将我的 Rails 应用程序从 rails 3 升级到 rails 4,并且在运行服务器后使用电子表格(0.7.1)我得到 了 main::object 的未定义方法“send_file”, 这是我的代码:

def financial_export_excel
    book = Spreadsheet::Workbook.new
    sheet = book.create_worksheet
    sheet.merge_cells(5, 0, 6, 0)
    sheet.merge_cells(5, 1, 6, 1)
    sheet.merge_cells(5, 2, 6, 2)
    sheet.merge_cells(5, 3, 6, 3)
    sheet.merge_cells(5, 4, 6, 4)
    sheet.merge_cells(5, 5, 6, 5)
    sheet.merge_cells(5, 6, 6, 6)
    sheet.merge_cells(5, 7, 6, 7)
    sheet.merge_cells(5, 8, 6, 8)
    book.write "sample.xls"
    send_file "sample.xls"
    File.delete "sample.xls"
end

有什么帮助吗?

4

1 回答 1

1

看来您正在将文件存储在某个位置并将其发送以供下载,最后将其删除。

由于您删除了文件,因此无法下载。如果您删除该行

File.delete "sample.xls"

它会起作用的。

或者您可以使用send_data方法而不是send_file方法。

例如:

send_data book, :filename => "sample.xls", :type => "application/vnd.ms-excel"

参考 send_data

于 2013-11-06T05:23:57.020 回答