2012-01-22 15 views
-1

配列(@bigtable)が文字列で埋められていて、配列からすべての行が別々の行になるファイルに保存したいのですが、ここにファイルを保存するコードがあります:配列をtxtファイルに保存

def savefile 
    @bigtable = Rails.cache.read("pass") 
    doc = "wyniki.csv" 
    File.open(doc, "w", :type => 'text/html; charset=utf-8'){ |f| f << @bigtable} 
    send_file(doc, :disposition => 'attachment') 
    end 

+0

ちなみに@bigtableを別の場所で使用している場合を除き、インスタンス変数(@bigtableではなくbigtable)の代わりにロケール変数を使用してください。 – Jef

答えて

0

実際の質問は何ですか?配列を書いていますか?

f << @bigtable.join("\n") 

(それは実際に大きいです、そしてあなたはメモリの問題を抱えている場合は、行ごとの書き込み。)

を、それはなぜ"text/html"にタイプを設定し、CSVファイルのですか? "text/csv"はもっと適切でしょうか?

+0

私はとてもばかだ。私はループでそれをやっていました、そして、一重引用符を使って '\ n'を追加していました - それは問題でした - しかし、ありがとう!あなたの解決策は短くなります;) – mrmnmly

+0

@ofcapl問題ありません。一重引用符を使用することは問題ではありませんでしたが、いずれにしてもうまくいくでしょう。 –

+0

しかし、すべてが1行で書かれていて、 '\ n'はテキストとしてそこにありました。 – mrmnmly

2
... 
File.open("wyniki.csv", "w") do |f| 
    @bigtable.each do |row| f << row end 
end 
... 
+0

私はDaveの答えのコメントで言及した私の解決策でした;) – mrmnmly

関連する問題