4

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...

D. Simpson
  • 1,882
  • 17
  • 32
  • before you did your fix in the application.rb file, you say you converted your project to HAML. How did you do that? – robzolkos May 01 '11 at 07:28
  • by converting (mostly) all of the ERB files into HAML format and installing the HAML interpreter GEM. – D. Simpson May 12 '11 at 23:07

2 Answers2

2

I just had the same issue where RSpec wouldn't find the action view templates written in haml. Then I realized that the test environment wasn't considering haml as rendering engine:

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

So, I fix it by adding the haml-rails gem to the test group.

Thus, if you have the same issue I recommend:

group :development, :test do
  gem 'rspec-rails'
  ...
  gem 'haml-rails'
end
defvol
  • 14,392
  • 2
  • 22
  • 32
2

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.

Proto
  • 388
  • 3
  • 7
  • I do believe that Gemfile and gem dependencies are most likely to root cause of my original problem. Some weeks ago, I set out to "purify" my gem environment and reinstalled everything (RVM, gems, etc) from scratch. Since that time, I've no longer needed the code I mentioned. – D. Simpson May 22 '11 at 15:04
  • Exact same problem. Added haml to my gem file and it solved my controller tests that were failing. Thanks for the help! – ryanjones Feb 19 '12 at 23:11