如何在终端中保存在我的 .rb 程序中所做的更改?

how to save changes made in my .rb program in the terminal?

我对此很陌生,但我编写了一个小程序,可以将电影添加到列表中,唯一的问题是它不保存所做的更改。我怎样才能做到这一点?

error = "movie not found"
movies = {
    Mazerunner: 1
}
error = "movie not found"
puts "welcome to CrudMovies"
puts "enter a command"
puts "type add to add a movie to the list"
choice = gets.chomp.downcase

case choice
when "add"
    puts "what movie would you like to add"
        title = gets.chomp
    if movies[title.to_sym].nil?
        puts "what would you like the rating of #{rating} (1-4)to be?"
        rating = gets.chomp
        movies[title.to_sym] = rating.to_i
        puts "#{title} was added with a rating of #{rating}"
    else
        puts "that movie already exists"
end
when "update"
    puts "what movie would you like to update? (case sensitive)"
        title = gets.chomp
    if movies[title.to_sym].nil?
    puts "#{error}"
else
    puts "what is the movie rating would you like to update?"
    movies[title.to symb] = rating.to_i
    puts "#{title}'s rating has been updated to #{rating}"
end
when "display"
    movies.each do |x, y|
    puts "#{x} Rating:#{y}"
end
when "destroy"
    puts "what movie would you like to erase?"
        title = gets.chomp
    if movies[title.to_sym].nil?
        puts "#{error}"
    else
        movies.delete(title.to_sym)
    puts "the movie no longer exists"
end
    else
        puts "command not recognized"
end

我假设 "Save" 你的意思是存储在 movies 散列中。答案是它实际上被存储了。执行操作后只有您的脚本退出,因此您永远看不到更新后的 movies.

要查看所需的结果,您需要将其中的大部分包装在一个无限循环中,以防止脚本自然退出。

考虑以下示例:

store = []
while true
  puts "Enter something:"
  choice = gets.chomp
  store.push choice
  puts "Your choices so far are: #{store.inspect}"
end