Получение пути просмотров от контроллера #action
Мне нужно скомпилировать (через HAML) и получить содержимое файла представления. Прямо сейчас я делаю это внутри действия контроллера:
path = File.join(views_path, 'recommend/email_texts/video_uploaded.html.haml'))
contents = File.open(path) { |f| f.read }
message = Haml::Engine.new(file).render(self)
# file is being rendered in a context of self because it includes some action
# specific vars, as well as calls to params method of controller
Затем мне нужно отправить сообщение в конечную точку SOAP и отобразить страницу "Операция прошла успешно" в браузере. Просто говорю
Таким образом, вопрос - есть ли подходящий подход, которым я могу заменить 3 строки выше? Если здесь не так много рефакторинга - есть ли хорошая практика для выполнения задач, над которыми я работаю?
Заранее спасибо!
1 ответ
Решение
Я думаю, что это должно быть эквивалентно:
message = view_renderer.render self,
:template => 'recommend/email_texts/video_uploaded'
Родственные документы:
AbstractController::Rendering#view_renderer
ActionView::Renderer#render
ActionView::TemplateRenderer