在我将项目转换为HAML之前,我有11个左右的Rspec测试在运行。然后,当我运行测试时,我得到如下错误:
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/应用程序中添加以下行来解决我自己的问题。rb文件:
config.generators do |g|
g.template_engine :haml
end
我从一篇半相关的博客文章中拼凑出来的,但我想知道怎么会有人知道怎么做?据我所知,HAML中没有记录它,所以我想知道我在安装它时是否做错了什么。我无法想象每个使用HAML的人都要经历这些……
我不知道如何在原来的问题上添加评论(就像RobZolkos和Dave在上面所做的那样),所以使用了这个"答案"部分。
当我将一个空白动词重命名为haml并运行测试时,我遇到了同样的问题。然而,在我的情况下,问题是"gem haml"在Gemfile中缺失。添加它,然后是"捆绑安装",解决了我的问题。只是想把它贴在这里,因为它可能对某人有用。我不需要像Dave那样添加"g.template_engine:haml"之类的东西。
我刚刚遇到了同样的问题,RSpec找不到用haml编写的操作视图模板。然后我意识到测试环境没有考虑haml作为渲染引擎:
Missing template pages/home with {:handlers=>[:erb, :rjs ...
因此,我通过将haml-rails gem添加到测试组来修复它。
因此,如果您有同样的问题,我建议:
group :development, :test do
gem 'rspec-rails'
...
gem 'haml-rails'
end