2016-11-08 3 views
1

У меня возникли трудности с функцией rails render_to_string. Я создал приложение, использующее флаг -api, поэтому я думаю, что это может быть проблемой, поскольку я тестировал в «полных» приложениях rails, и его работы просто прекрасны.Rails render_to_string

По существу я звоню:

body_html = render_to_string(template: 'reservations/print') 

Я также попытался

body_html = render_to_string('reservations/print') 
body_html = render_to_string(partial: 'reservations/print') 
body_html = render_to_string(partial: 'reservations/print.html.erb') 

, который должен возвращать HTML для этого шаблона. Имя файла print.html.erb и только имеет основные данные, т.е.

<p> Hello world. </p> 

Когда я вывести body_html он пуст.

Я ссылаюсь на этот вопрос What is the correct way to render_to_string in wicked pdf?, а также собираюсь использовать Wicked PDF для создания pdf-файла.

Большое спасибо

+0

Referencing, переполнение стека вопрос. Пробовали ли вы просто «резервирование/печать» без ключевого слова шаблона? –

+0

Я не думаю, что флаг '--api' является проблемой. Согласно документу на Rails Api, 'AbstractController :: Rendering' поставляется по умолчанию, и этот модуль содержит метод« render_to_string ». –

+0

Привет, Дэн, спасибо, что нашли время ответить. У меня это и еще несколько. Я уточню вопрос. – Dudedolf

ответ

2

Хотя я не думаю, что это лучшее решение, выполнив следующие действия. Работал

ac = ActionController::Base.new() 

html_string = ac.render_to_string :template => 'path_to_file' e.g. 'post/show' 

Файл контроллера Применение в режиме API Rails наследует от ActionController :: API, так что я предполагаю, что функциональность для визуализации в ActionController :: Base. Если кто-нибудь знает, какой модуль из базы требуется, я обновлю этот ответ?

Благодаря Rudy

Смежные вопросы