Rails "no puede convertir Spreadsheet :: Workbook en String"

Estoy tratando de usar la gema de la hoja de cálculo en mi aplicación Rails, pero aparece el siguiente error:

can't convert Spreadsheet::Workbook into String

Este es mi codigo:

require 'spreadsheet'

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

¿Qué estoy haciendo mal?

preguntado el 10 de mayo de 11 a las 13:05

El error que está viendo no proviene del breve fragmento de código que proporcionó. Debe proporcionar más código. Además, mire el backtrace incluido con la excepción para ayudar a encontrar la línea de código que está desencadenando esto. -

1 Respuestas

Mi mejor suposición por sus detalles limitados es que su código intenta generar el archivo de hoja de cálculo renderizado en una plantilla de vista. Necesita usar send_file en su controlador. Aquí hay un ejemplo simple (pero realmente no recomiendo tener el código de la hoja de cálculo en el controlador):

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

contestado el 10 de mayo de 11 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.