2

これは本当に私を無防備に捕らえました。stocks / index.html.hamlは、haml-rails gemをインストールした後、ブラウザーで問題なくレンダリングされます。しかし、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

hamlHamlテンプレートをレンダリングするには、 gemをロードする必要があります。haml-railsを呼び出しますが、の開発グループにrequire 'haml'のみ追加した場合は、開発にのみロードされます。haml-railsGemfilehaml

これを修正するにhaml-railsは、グループから移動して常にロードされるようにするか(したがってhaml、常にロードされるようにする)、またはグループに追加gem 'haml'する必要がありますGemfile(グループ外)。最初のオプション(開発グループから移動する)がおそらく最も簡単ですが、本番環境で不要なコードが読み込まれないようhaml-railsに、開発グループに残して明示的に追加することをお勧めします。gem 'haml'

于 2012-07-27T21:17:55.800 に答える