Попытка добавить очень простой шаблон описания к одной из моих моделей Rails. То, что я хочу сделать, это взять строку шаблона следующим образом:
template = "{{ name }} is the best {{ occupation }} in {{ city }}."
и такой хеш-код:
vals = {:name => "Joe Smith", :occupation => "birthday clown", :city => "Las Vegas"}
и получите сгенерированное описание. Я думал, что смогу сделать это с простым gsub, но Ruby 1.8.7 не принимает хэши в качестве второго аргумента. Когда я делаю gsub как блок:
> template.gsub(/\{\{\s*(\w+)\s*\}\}/) {|m| vals[m]}
=> " is the best in ."
Вы можете видеть, что он заменяет всю строку (с фигурными скобками), а не захватывает совпадения.
Как мне заставить его заменить "{{кое-что}}" на vals ["что-то"] (или vals ["что-то" .to_sym])?
ТИА