Ruby on rails 生成的CSV中的引号
我正在我的模型中生成CSV,以作为文件响应Ruby on rails 生成的CSV中的引号,ruby-on-rails,ruby,csv,Ruby On Rails,Ruby,Csv,我正在我的模型中生成CSV,以作为文件响应 def self.to_csv CSV.generate(col_sep: "\;") do |csv| csv << ["1", "2", "3", "4", "5"] all.each do |record| csv << [record.date.to_s, record.text, (MessageCharacter.find_by_id(record.message_ch
def self.to_csv
CSV.generate(col_sep: "\;") do |csv|
csv << ["1", "2", "3", "4", "5"]
all.each do |record|
csv << [record.date.to_s, record.text, (MessageCharacter.find_by_id(record.message_character_id).try(:name) || ""), record.commentable.name, record.user.name].map{|e| "#{e}"}
end
end
end
但是,我得到的不是没有引号的值(如果在输入数据中我没有用引号括起来),就是如果我用额外的引号括起来,每个值都有3个引号!那么,如何按照上面显示的方式包装所有值呢?从您可以使用强制引用
选项,如下所示:
def self.to_csv
CSV.generate(col_sep: "\;", force_quotes: true) do |csv|
csv << ["1", "2", "3", "4", "5"]
all.each do |record|
csv << [record.date.to_s, record.text, (MessageCharacter.find_by_id(record.message_character_id).try(:name) || ""), record.commentable.name, record.user.name].map{|e| "#{e}"}
end
end
end
def self.to_csv
CSV.generate(col_sep:“\”,force_quotes:true)do|CSV|
csv
def self.to_csv
CSV.generate(col_sep: "\;", force_quotes: true) do |csv|
csv << ["1", "2", "3", "4", "5"]
all.each do |record|
csv << [record.date.to_s, record.text, (MessageCharacter.find_by_id(record.message_character_id).try(:name) || ""), record.commentable.name, record.user.name].map{|e| "#{e}"}
end
end
end