haml rspec缺少模板

时间:2012-07-27 20:21:18

标签: ruby-on-rails rspec haml

这真的让我无人防守。在我安装了haml-rails gem之后,stocks / index.html.haml在浏览器中呈现没有问题。但是,当我尝试使用rspec / capybara

进行测试时
describe "StockPages" do
  describe "stocks/index.html.haml" do
    before {visit stocks_path}
    subject {page}
    it { should have_selector('table#Result')  }
  end
end

我收到了这个错误:

Failure/Error: before {visit stocks_path}
     ActionView::MissingTemplate:
       Missing template stocks/index, application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}.

我该如何解决这个问题? 感谢

1 个答案:

答案 0 :(得分:3)

为了渲染Haml模板,您需要加载haml gem。 haml-rails会调用require 'haml',但如果您只在haml-rails中添加了Gemfile到开发小组,那么haml也只会加载到开发中。

要解决此问题,您需要将haml-rails移出任何组,以便始终加载(因此haml也始终加载),或添加gem 'haml'到你的Gemfile(在任何组之外)。第一个选项(将haml-rails移出开发组)可能是最简单的,但您可能希望将其保留在开发组中并明确添加gem 'haml'以避免在生产中加载不需要的代码。