2012-01-05 3 views
8

У меня есть итерации (на мой взгляд):сохранить строку в файл

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

Каждый @result является строкой. @bigtable имеет каждый @result из итераций. Теперь то, что я хочу: Я хочу, чтобы сохранить содержимое из @bigtable (после clickin кнопки) в .csv файл (и выбрать, куда сохранить его на моем жестком диске). И я хочу сделать это, как каждый из @result @bigtable в своей собственной отдельной строке, как это (псевдо-код):

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

Пожалуйста, помогите

ответ

23

Чтобы превратить ваш массив в строку, вы можете сделать :

@bigtable.join("\n") 

Чтобы написать эту строку в файл:

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

И это все!

КСТАТИ:

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

Спасибо! Но как привязать этот код к кнопке? – mrmnmly

+1

Вы должны создать действие для одного из контроллеров, и называем это действие, когда ваша кнопка нажата, в основном. –

+0

нормально, у меня есть что-то вроде этого в моем 'generators_controller':' Защиту SAVEFILE @ bigtable.join ("\ п") File.open ("путь/к/файлу", "W") {| файл | file.write @ bigtable.join ("\ п")} end' и как привязать его к кнопке, на мой взгляд (HTML код)? можешь мне помочь? – mrmnmly