2012-01-05 15 views
8

Tengo una iteración (en mi opinión):guardar cadena para presentar

([email protected]_i).each do |i| 
    ...doing things... 
    @bigtable << @result[0..result.length-2] 
end 

Cada @result es una cadena. @bigtable tiene cada @result de iteraciones. Ahora lo que quiero: Quiero guardar el contenido de @bigtable (después de hacer clic en un botón) en el archivo .csv (y elegir dónde guardarlo en mi disco duro). Y quiero hacerlo como cada @result de @bigtable se encuentra en su propia sola línea, como este (pseudo código):

@result string from @bigtable[0] 
@result string from @bigtable[1] 
etc. 

Por favor, ayudar a

Respuesta

23

Para transformar la matriz en una cadena que puede hacer :

@bigtable.join("\n") 

para escribir esta cadena en un archivo:

File.open("path/to/file", "w") { |file| file.write @bigtable.join("\n") } 

Y eso es todo!

Por cierto:

@result[0..result.length-2] == @result[0..-2] 
+0

Gracias! Pero, ¿cómo vincular este código a un botón? – mrmnmly

+1

Debe crear una acción para uno de sus controladores, y llamar a esta acción cuando se hace clic en su botón, básicamente. –

+0

bien, tengo algo como esto en mi 'generators_controller':' def savefile @ bigtable.join ("\ n") File.open ("ruta/a/archivo", "w") {| archivo | file.write @ bigtable.join ("\ n")} final' y cómo se une al botón en mi vista (código html)? ¿me puedes ayudar? – mrmnmly

Cuestiones relacionadas