Search code examples
ruby-on-railsrspechamlerbactionpack

Integrating HAML with RSPEC


I had 11 or so Rspec tests running sat, until I converted my project to HAML. Then when I ran my tests, I got errors such as:

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 minutes after posting my original question, I solved my own problem by adding the following lines to my /config/application.rb file:

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

I cobbled that together from a semi-related blog entry, but I'm wondering how the heck anyone would know to do this? It's not documented in HAML as far as I can tell, so it leaves me wondering if I simply did something wrong when I installed it. I can't imagine everyone using HAML had to go thru all that...


Solution

  • I couldn't figure out to how to add a comment to the original question (as RobZolkos and Dave have done above) and so using this "answer" section.

    I faced the same issue, when I renamed a blank erb to haml, and ran the tests. However, in my case, the issue was "gem haml" was missing in the Gemfile. Adding that, followed by a "bundle install" solved the issue for me. Just thought will post here since it might be useful for someone. I didn't had to add the "g.template_engine :haml" stuff, as Dave had to.