Интеграция HAML с RSPEC

У меня было около 11 тестов Rspec, пока я не преобразовал свой проект в HAML. Затем, когда я запустил свои тесты, я получил такие ошибки, как:

ActionView::MissingTemplate: Missing template pages/home with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/Users/myhomedirectory/my_app/app/views"
/Users/myhomedirectory/.rvm/gems/ruby-1.9.2-p180@global/gems/actionpack-3.0.6/lib/action_view/paths.rb:15:in `find'
/Users/myhomedirectory/.rvm/gems/ruby-1.9.2-p180@global/gems/actionpack-3.0.6/lib/action_view/lookup_context.rb:81:in `find'

Через 45 минут после публикации моего исходного вопроса я решил собственную проблему, добавив следующие строки в мой файл /config/application.rb:

config.generators do |g|
  g.template_engine :haml
end

Я собрал это вместе из частично связанной записи в блоге, но мне интересно, как, черт возьми, кто-нибудь узнает, как это сделать? Насколько я могу судить, это не задокументировано в HAML, поэтому мне остается только задуматься, не сделал ли я что-то не так при установке. Я не могу представить, чтобы все, кто использовал HAML, проходили через все это...

2 ответа

Решение

Я не мог понять, как добавить комментарий к исходному вопросу (как Робзолкос и Дэйв сделали выше) и, таким образом, использовать этот раздел "ответ".

Я столкнулся с той же проблемой, когда переименовал пустую строку в haml и запустил тесты. Однако, в моем случае, проблема заключалась в том, что в Gemfile отсутствовал "gem haml". Добавление, а затем "установка пакета" решило проблему для меня. Просто подумайте, что здесь будет опубликовано, поскольку это может быть полезно для кого-то. Мне не нужно было добавлять материал "g.template_engine:haml", как должен был Дейв.

У меня была та же проблема, когда RSpec не находил шаблоны представления действий, написанные на хамле. Затем я понял, что тестовая среда не рассматривает haml как движок рендеринга:

Missing template pages/home with {:handlers=>[:erb, :rjs ...

Итак, я исправляю это, добавляя гем haml-rails в тестовую группу.

Таким образом, если у вас есть такая же проблема, я рекомендую:

group :development, :test do
  gem 'rspec-rails'
  ...
  gem 'haml-rails'
end
Другие вопросы по тегам