Вы можете использовать объект ERB для визуализации текста без текста в файле.
Просто передайте текст с тегами <%= %>
. Вы можете поместить что-то вроде следующего в качестве функции application_helper.
def render_erb_text(text, args={})
b = binding
template = ERB.new(text, 0, "%<>")
template.result(b)
end
А потом в вашем шаблоне
<%= render_erb_text("<%= %w(hi how are you).join(' - ') %>")%>
Вы также можете рассмотреть рендеринг текста в вашем контроллере, поскольку вы можете лучше обрабатывать любые ошибки рендеринга, чем во время оценки представления.
Ознакомьтесь с документацией ERB для получения дополнительной информации о привязке переменных и т. Д.
Я не знаком с деталями того, как это работает под прикрытием, но может быть некоторый серьезный риск при запуске этого кода на плохих или вредоносных данных базы данных. Оценка рубинового кода из пользовательского ввода или любого непроверенного источника должна быть сделана очень тщательно, если вообще.