Я хочу получить задачу rake, которая читает файл HAML и создает из него статический файл html. Причина этого заключается в том, что я хочу динамически локализовать свои страницы ошибок способом, описанным здесь http://devcorner.mynewsdesk.com/2010/01/13/rails-i18n-and-404500-error-pages/
Вот способ записи страниц с ошибками.
def write_error_page(status, locale = nil)
dest_filename = [status.to_s, locale, "html"].compact.join(".")
File.open(File.join(Rails.root, "public", dest_filename), "w") do |file|
path = File.join(Rails.root, "app", "views", "errors", "#{status}.haml")
file.print Haml::Engine.new(File.read(path)).render
end
end
Проблема в том, что Haml :: Engine не имеет доступных методов rails. Поэтому, когда я пытаюсь прочитать файл haml, я получаю сообщение об ошибке для каждого метода rails в файле (я хочу использовать методы
как image_tag, form_for и, очевидно, I18n.translate).
Я заметил похожую проблему, которая была решена здесь: Рендеринг движка HAML на Rails
Однако, когда я пробую решение, упомянутое в ссылке выше, я получаю следующую ошибку: «неопределенная локальная переменная или метод« config »для #».
Как я мог заставить методы rails работать в Haml :: Engine, чтобы я мог читать файл HAML? Я также попытался переключиться на ERB, но заметил, что это приводит к той же проблеме, которую кто-то еще хотя бы частично разрешил здесь рендеринг erb из базы данных в проблему, пожалуйста, помогите! Но это решение не помогло мне либо.
Я также открыт для других решений, кроме использования Haml :: Engine. Я посмотрел на помощника capture_haml, но тоже не понимаю, как это мне поможет.