2

这真的让我措手不及。安装 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]}.

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

4

1 回答 1

3

为了呈现 Haml 模板,您需要haml加载 gem。haml-rails确实 call require 'haml',但如果你只添加haml-rails到你的开发组中,Gemfile那么haml也只会在开发中加载。

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

于 2012-07-27T21:17:55.800 回答