CSV.open とCSV.generateの使う場面の違い
- csvの使い方を調べると、
CSV.open
が多い - 会社の実装を見てみると
CSV.generate
が多い気がする
なぜ場面によって違うのか?
csvの出力先を【ディレクトリ配下に置く】のか。【export】するのか(railsで)によって異なるのかな。
## CSV.open
### これはopenの第一引数の指定先(output.csv)に出力する事を想定している
### 実行 すると同じディレクトリ配下に ls csv_ruby.rb output.csvみたいになる
csv_ruby.rb # ファイル名
lists = [["1","2","3"],["4","5","6"]]
CSV.open("./output.csv", "w") do |row|
lists.each do
row << list
end
end
## CSV.generate
lists = [["1","2","3"],["4","5","6"]]
csvs = CSV.generate do |row|
lists.each do |list|
row << list
end
end
## これは出力結果を なにかしらの変数に入れて中身を確認する必要がある
## 最終的にsenddataの引数に渡してダウンロードする
def index
format.csv do
sendata(csvs, type: :csv, failename: "ファイル名")
end
end
まとめ
こんな感じで、最終的な期待結果に応じて、csvの作り方が異なる