2012-01-05 18 views
8

Ho un'iterazione (a mio avviso):salvare stringa di file

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

Ogni @result è una stringa. @bigtable ha ogni @result dalle iterazioni. Ora cosa voglio: Voglio salvare il contenuto da @bigtable (dopo aver fatto clic su un pulsante) in un file .csv (e scegliere dove salvarlo sul mio hdd). E voglio farlo come ogni @result da @bigtable è nel suo sola riga, come questo (pseudo codice):

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

prega, aiutano

risposta

23

Per trasformare l'array in una stringa si può fare :

@bigtable.join("\n") 

Per scrivere questa stringa in un file:

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

E questo è tutto!

BTW:

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

Grazie! Ma come associare questo codice a un pulsante? – mrmnmly

+1

È necessario creare un'azione su uno dei controller e chiamare questa azione quando si fa clic sul pulsante, in pratica. –

+0

ok, ho qualcosa di simile nel mio 'generators_controller':' def savefile @ bigtable.join ("\ n") File.open ("percorso/a/file", "w") {| file | file.write @ bigtable.join ("\ n")} fine' e come associarlo al pulsante nella mia vista (codice html)? Mi potete aiutare? – mrmnmly