render_to_string в классе lib, не работающем

Я пытаюсь использовать delayed_job обновить удаленную базу данных через xml

В моей папке lib я поместил файл с классом, который должен сделать a render_to_text с template.xml.builder, но я добираюсь:

undefined method `render_to_string' for #<SyncJob:0x7faf4e6c0480>...

Что я делаю неправильно?

18
задан AdrieanKhisbe 15 April 2015 в 14:50
поделиться

1 ответ

render_to_string определен в ActionController :: Base . Поскольку класс / модуль определен вне области действия контроллеров Rails, функция недоступна.

Вам придется вручную визуализировать файл. Я не знаю, что вы используете для своих шаблонов (ERB, Haml и т. Д.). Но вам придется загрузить шаблон и проанализировать его самостоятельно.

Итак, если ERB, что-то вроде этого:

require 'erb'

x = 42
template = ERB.new <<-EOF
  The value of x is: <%= x %>
EOF
puts template.result(binding)

Вам нужно будет открыть файл шаблона и отправить его содержимое на ERB.new , но это упражнение осталось для вас. Вот документы для ERB.

Это общая идея.

3
ответ дан 30 November 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: