Ruby получает ввод пользователя, читает файл и копирует его в другой файл с помощью erb.

Хорошо, давайте начнем с того, что я еще очень многому здесь учусь.

У меня есть файл, в который я поместил кучу таких тегов:

stuff stuff stuff <%= #{username} %> stuff stuff

то в моем .rb у меня есть несколько таких входов:

puts "Enter your username: "
username = gets.chomp

Теперь я хочу прочитать свой шаблон и в новом файле заменить все <% = # {username}%> с фактическим вводом.

Я получаю разные результаты в своих попытках разобраться в этом самостоятельно, но я думаю, что это примерно так:

data = File.read('template/userinfo.txt')
data = ERB.new(File.write('yourinfo.txt', 'w'))

Есть здесь какая-нибудь добрая душа, которая может указать мне правильное направление?

(файл создается, но теги остаются)

Я видел это: stackoverflow.com/questions/10422564/…, но это не показывает мне, как я помещаю его в другой файл, файл создается, но теги остаются незаполненными :(

ohmni 10.08.2018 14:27

Вы смотрели пример из документации? Насколько я могу судить, это именно то, что вы здесь пытаетесь сделать.

Tom Lord 10.08.2018 14:30
0
2
409
1

Ответы 1

Как было сказано в самом первом примере документации на ERB, следует вызвать ERB#result:

username = 'ohmni'
template = ERB.new(File.read('template/userinfo.txt'))
File.write('yourinfo.txt', template.result(binding))

Спасибо! Я запутался в использовании template.result (binding)) в своих разных попытках и повредил свой маленький мозг :(

ohmni 10.08.2018 14:31

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