Запись и отправка пользовательского ввода

До сих пор я просил пользователя отправить целое число (из вариантов: 1, 2, 3, 4 или 5) в качестве возможного ответа на сообщения. Затем я возвращаю пользователю выбор целого числа, прежде чем перейти к следующему сообщению. Поэтому мои сообщения имели следующую структуру:

Messages = [ 
{"1"=>"You chose 1.", 
"2"=>"You chose 2.", 
"message"=> "Pick 3 or 4. 3) Apples 4) Oranges."},

{"3"=>"You chose Apples.", 
"4"=>"You chose Oranges.", 
"message"=>"Pick 1 or 2. 1) [something] 2) [something]"}, 
]

Я передаю свои сообщения следующим вызовом:

say "#{messages[$status.to_i][$reply]} #{messages[$status.to_i]['message']}"

Теперь мне нужно, чтобы пользователь ввел что-то оригинальное, например, скажем, его / ее дату рождения (например, 07May90 может быть возможным полным вводом). Поэтому мне нужно следующее, чтобы быть в этом деле.

Messages = [ 
{"1"=>"You chose 1.", 
"2"=>"You chose 2.", 
"message"=> "What is your date of birth?"},

{"DoB"=>"You chose [whatever user inputs e.g. 07May90].", 
"message"=>"Pick 1 or 2. 1) [something] 2) [something]"}, 
]

Как я могу вернуть исходные данные пользователю, например, если он ответил на вопрос DoB, набрав 07May90, я хотел бы сказать: "Вы выбрали 07May90". (как уже упоминалось выше).

1 ответ

Решение

Один способ, который приходит на ум, будет использовать sprintf

message = "You picked %s"
value = "07May90"
puts sprintf(message, value)

Это не особо красиво, но это сработает.

Другие вопросы по тегам