4

在我将项目转换为 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/application.rb 文件中添加以下行来解决自己的问题:

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

我从一个半相关的博客条目中拼凑起来,但我想知道怎么会有人知道这样做?据我所知,它没有记录在 HAML 中,所以这让我想知道我在安装它时是否做错了什么。我无法想象每个使用 HAML 的人都必须经历这一切……

4

2 回答 2

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
于 2013-06-10T17:11:15.577 回答
2

我不知道如何为原始问题添加评论(正如 RobZolkos 和 Dave 上面所做的那样),因此使用了这个“答案”部分。

当我将空白 erb 重命名为 haml 并运行测试时,我遇到了同样的问题。但是,就我而言,问题是 Gemfile 中缺少“gem haml”。添加它,然后是“捆绑安装”为我解决了这个问题。只是想在这里发布,因为它可能对某人有用。我不必像 Dave 那样添加“g.template_engine :haml”的东西。

于 2011-05-21T13:57:12.950 回答