嗨,我有一个程序,用户可以在其中编写八卦,包括作者和内容。我将其保存在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
我敢肯定这不是最好的方法,但有效!