Вы можете хранить данные в виде таблицы в базе данных. Я предлагаю изучить базу данных sqlite3, которой легко управлять. Вот репозиторий sqlite3 в github, который содержит полезную информацию о том, как его использовать, если вы посмотрите в файле Readme https://github.com/sparklemotion/sqlite3-ruby.
Шаг 0: Подключение к базе данных
require "sqlite3"
db = SQLite3::Database.new "myTrips.db"
db.results_as_hash = true
Шаг 1. По сути, чтобы упростить задачу, вы можете создать таблицу, содержащую столбец для каждого из этих вопросов плюс один для общего количества.
rows = db.execute <<-SQL
create table Trips (
trip_pk integer primary key autoincrement,
location varchar(50),
lodging_cost float,
transit_cost float,
bags_cost float,
total_cost float
);
SQL
Шаг 2: Каждый раз, когда вы go проходите через свою программу и отвечаете на вопросы, вы можете вставить новую запись в таблицу. Таким образом, каждая строка будет представлять одну поездку. Введенные вами ответы будут добавлены в оператор SQL ниже в разделе значений. Вы можете вводить их динамически, используя ha sh, который вы уже сформировали в приведенном выше примере, который выглядит следующим образом:
responses = {
location: trip_location,
lodging: lodging_cost,
transit: transit_cost,
bags: bags_checked *50
}
def add_new_trip
total = responses[:lodging] + responses[:transit] + responses[:bags]
db.execute("insert into Trips(location, lodging_cost, transit_cost,
number_of_bags, total_cost) values(responses[:location], responses[:lodging], responses[:transit], responses[:bags], total)")
Шаг 3: Затем, как только вы заполните данные в базе данных, вы можете запросить Информация, которую вы хотите. Поэтому, если вы хотите узнать стоимость поездки в Испанию, вы должны выполнить следующую инструкцию sql:
select total_price from Trips where location = 'Spain'
. Вы можете использовать ее для расчета процентов.
Сохранить в Имейте в виду, что часть этого является псевдокодом и может не работать точно из сумки, но если вы посмотрите на ссылку, которую я разместил, вы сможете найти то, что вы ищете, чтобы заполнить пробелы.