CSV 如何根据用户选择删除行



嗨,我有一个程序,用户可以在其中编写八卦,包括作者和内容。我将其保存在CSV文件中。喜欢这个:

author1,content1
author2,content2
author3,content3

我想问用户他想用一个简单的gets.to_i删除哪一行。然后,如果用户输入2,则删除第二行。如果他3进入 3 等... 如何根据用户选择删除 i 行?

您可以使用CSV::Table#delete

i = gets.to_i
table = CSV.table(file).by_row
table.delete(i)

我发现如果可以帮助某人:

def self.delete(index_to_delete)
gossips = Gossip.all # Creation tempory array
gossips.delete_at(index_to_delete - 1) # delete the choosen row
File.open("db/gossip.csv", "w") do |f|
f << ""         # clean csv file
end
gossips.map { |g| g.save } # save the new array as csv (with an other def to save)
end

我敢肯定这不是最好的方法,但有效!

相关内容

  • 没有找到相关文章

最新更新