2010-05-05 2 views
0

В моем текущем проекте мне требуется собрать .zip-файл, содержащий HTML и текстовые шаблоны для загрузки пользователем, для импорта в программу электронной почты.Рендеринг HTML в рельсах без фактического отображения его

Я унаследовал этот проект, и в настоящее время код использует «поддельную» модель (то есть модель, которая напрямую не коррелирует с таблицей базы данных), в которой он хранит весь шаблон в строке, используя динамический переменные для заполнения определенных областей. Тогда у «поддельной» модели есть способ создания zip-файла.

Мне кажется, что должен быть лучший способ сделать это. Мне было интересно, есть ли способ переместить шаблон в файл .erb/haml, а затем написать метод, который будет заполнять файл, готовясь к зашивке? В принципе, есть способ визуализации HTML и текстового файла, без фактического отображения их?

Спасибо за любую помощь.

+0

«поддельная» модель или контроллер? Обычно контроллер отвечает за рендеринг, а не за модель. – jigfox

+0

Это класс, расположенный в папке с образцами, но он не связан с объектом базы данных. Вместо этого он требует, чтобы идентификатор фактической модели передавался ему при вызове класса. –

ответ

1

Просто напишите действие и просмотр для визуализации HTML и текста в обычном режиме, то используйте метод render_to_string присвоить содержимое в строки

http://apidock.com/rails/ActionController/Base/render_to_string

Затем вы можете запустить метод Model (надеюсь, метод класса) для создания zip-файла с использованием содержимого, которое у вас есть в переменных экземпляра