Получение пути просмотров от контроллера #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
Другие вопросы по тегам