Carga de archivos en Rails: los datos son un objeto, ¿cómo los devuelvo en mi vista?

StackOverflow https://stackoverflow.com/questions/1608312

  •  05-07-2019
  •  | 
  •  

Pregunta

Al realizar una carga en mi proyecto de Rails, la base de datos almacena

---! ruby ??/ object: File tipo_de_contenido: application / octet-stream original_path: my.numbers

¿cómo consigo que devuelva mis números en mi vista solamente?

Muchas gracias! Marco

ps. No quiero usar attachment_fu o cualquier otro complemento, preferiblemente.

¿Fue útil?

Solución

El controlador recibe una carga de archivo como un objeto de archivo, no como datos, por lo que es su responsabilidad leerlo. Los archivos cargados normalmente se guardan en un directorio temporal y hay un identificador de archivo abierto en el params.

Podría hacer algo como lo siguiente para recuperar los datos:

def create
  # Read in data from file into parameter before creating anything
  if (params[:model] and params[:model][:file])
    params[:model][:file] = params[:model][:file].read
  end

  @model = MyModel.create(params[:model])
end

Probablemente deba asegurarse de que la columna en la base de datos pueda almacenar datos binarios. En las migraciones de MySQL, este es el tipo de columna binaria.

Otros consejos

Puede acceder al nombre del archivo cargado con el ayudante original_filename. así params [: model] [: file] .original_filename

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top