如何从 csv 条目中删除“\n”字符?
How can I remove the "\n" character from csv entries?
我正在用写在名为 tags.csv 的文件上的标签为我的数据库播种。我能够为标签播种,但是,当我检查控制台时,我看到一个字符 \n 作为最后一个字符标签名称。例如,假设 airplane 是标签名称,当我播种时,我得到的标签名称是 airplane\n
我做错了什么?
我的 db/tags.csv 是包含标签条目的 csv 文件,它看起来像这样:
airplane
sleeping
travel
现在在我的 seeds.rb 文件中(应该是标签的播种)看起来像:
puts "loading tags..."
# LOADING TAGS
GOD_USER_ID = -1
csv_text = File.read('db/tags.csv')
csv = CSV.parse(csv_text, :headers => true)
puts "loading tags..."
csv.each_with_index do |row, index|
tag = row
if ActsAsTaggableOn::Tag.exists?(name: tag, user_id: GOD_USER_ID, privacy: 'PUBLIC') == false then
ActsAsTaggableOn::Tag.create(name: tag, user_id: GOD_USER_ID, privacy: 'PUBLIC')
if index % 10 == 0
puts "tag: #{tag} --- index: #{index}"
end
else
if index % 10 == 0
puts "tag: #{tag}\t(already exists) --- index: #{index}"
end
end
end
使用foreach
应该可以正常工作
puts "loading tags..."
# LOADING TAGS
GOD_USER_ID = -1
puts "loading tags..."
CSV.foreach("#{Rails.root}/db/tags.csv", headers: true) do |row|
if ActsAsTaggableOn::Tag.exists?(name: tag, user_id: GOD_USER_ID, privacy: 'PUBLIC')
puts "tag: #{tag}\t(already exists) --- index: #{index}" if index % 10 == 0
else
ActsAsTaggableOn::Tag.create(name: tag, user_id: GOD_USER_ID, privacy: 'PUBLIC')
puts "tag: #{tag} --- index: #{index}" if index % 10 == 0
end
end
我正在用写在名为 tags.csv 的文件上的标签为我的数据库播种。我能够为标签播种,但是,当我检查控制台时,我看到一个字符 \n 作为最后一个字符标签名称。例如,假设 airplane 是标签名称,当我播种时,我得到的标签名称是 airplane\n 我做错了什么?
我的 db/tags.csv 是包含标签条目的 csv 文件,它看起来像这样:
airplane
sleeping
travel
现在在我的 seeds.rb 文件中(应该是标签的播种)看起来像:
puts "loading tags..."
# LOADING TAGS
GOD_USER_ID = -1
csv_text = File.read('db/tags.csv')
csv = CSV.parse(csv_text, :headers => true)
puts "loading tags..."
csv.each_with_index do |row, index|
tag = row
if ActsAsTaggableOn::Tag.exists?(name: tag, user_id: GOD_USER_ID, privacy: 'PUBLIC') == false then
ActsAsTaggableOn::Tag.create(name: tag, user_id: GOD_USER_ID, privacy: 'PUBLIC')
if index % 10 == 0
puts "tag: #{tag} --- index: #{index}"
end
else
if index % 10 == 0
puts "tag: #{tag}\t(already exists) --- index: #{index}"
end
end
end
使用foreach
应该可以正常工作
puts "loading tags..."
# LOADING TAGS
GOD_USER_ID = -1
puts "loading tags..."
CSV.foreach("#{Rails.root}/db/tags.csv", headers: true) do |row|
if ActsAsTaggableOn::Tag.exists?(name: tag, user_id: GOD_USER_ID, privacy: 'PUBLIC')
puts "tag: #{tag}\t(already exists) --- index: #{index}" if index % 10 == 0
else
ActsAsTaggableOn::Tag.create(name: tag, user_id: GOD_USER_ID, privacy: 'PUBLIC')
puts "tag: #{tag} --- index: #{index}" if index % 10 == 0
end
end