CSV Как удалить строку в зависимости от выбора пользователя - PullRequest
1 голос
/ 01 февраля 2020

Привет, я получил программу, в которой пользователь может написать сплетню, с автором и контентом. И я сохраняю это в файле CSV. Например:

author1,content1
author2,content2
author3,content3

И я хочу спросить у пользователя, какую строку он хочет удалить с помощью простого gets.to_i. Затем, если пользователь введет 2, то удалит вторую строку. Если он введет 3 3-й акт ... Как я могу удалить строку i в зависимости от выбора пользователя?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2020

Я нашел это, если это может кому-то помочь:

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

Я уверен, что это был не лучший способ, но это сработало!

0 голосов
/ 01 февраля 2020

вы можете использовать CSV::Table#delete

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

table.delete(i)
...