Trip
Trip

Reputation: 27114

How to have quotes separated values in a Rails CSV?

My CSV is exporting as :

"user_name,course_code,completion_date,completion_status,score"
621,BTB,2014/4/22,complete,100

But I want it like :

"user_name","course_code","completion_date","completion_status","score"
"621","BTB","2014/4/22","complete","100"

The code that generates my export is :

  csv << ["user_name,course_code,completion_date,completion_status,score"]
  @completes.each do |quiz|
    csv << [member.id.to_s, apply_course_code(@section), quiz.updated_at.strftime('%Y/%-m/%-d'), 'complete', '100']
  end    

How can I generate quotes separated values in my CSV?

Upvotes: 0

Views: 633

Answers (1)

Doguita
Doguita

Reputation: 15703

You can pass an option force_quotes: true to wrap every entry with quotes. But in your header you have to pass an array of separated strings like this:

CSV.generate(force_quotes: true) do |csv|
  csv << %w(user_name course_code completion_date completion_status score)
  @completes.each do |quiz|
    csv << [member.id.to_s, apply_course_code(@section), quiz.updated_at.strftime('%Y/%-m/%-d'), 'complete', '100']
  end  
end

Upvotes: 2

Related Questions