2012-01-05 26 views
8

Tôi đã có một lần lặp (theo quan điểm của tôi):lưu chuỗi nộp

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

Mỗi @result là một chuỗi. @bigtable có mọi @result từ các lần lặp. Bây giờ những gì tôi muốn: Tôi muốn lưu nội dung từ @bigtable (sau khi nhấp vào một nút) vào tệp .csv (và chọn nơi lưu nó trên hdd của tôi). Và tôi muốn làm điều đó như mọi @result từ @bigtable là trong dòng đơn riêng của mình, như thế này (pseudo code):

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

Xin vui lòng, giúp

Trả lời

23

Để chuyển đổi mảng của bạn thành một chuỗi bạn có thể làm :

@bigtable.join("\n") 

Để viết chuỗi này vào một tập tin:

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

Và đó là nó!

BTW:

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

Cảm ơn! Nhưng làm thế nào ràng buộc mã này vào một nút? – mrmnmly

+1

Bạn phải tạo một hành động cho một trong các bộ điều khiển của bạn và gọi hành động này khi nút của bạn được nhấp vào, về cơ bản. –

+0

ok, tôi đã có một cái gì đó như thế này trong 'generator_controller':' def savefile @ bigtable.join ("\ n") File.open ("đường dẫn/đến/tệp", "w") {| tệp | file.write @ bigtable.join ("\ n")} end' và cách liên kết nó với nút trong chế độ xem của tôi (mã html)? Bạn có thể giúp tôi được không? – mrmnmly