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

(RobZolkosとDaveが上記で行ったように)元の質問にコメントを追加する方法がわからなかったため、この「回答」セクションを使用しました。

空白のerbの名前をhamlに変更してテストを実行したときに、同じ問題に直面しました。ただし、私の場合、問題は「gemhaml」がGemfileにないことでした。それを追加し、続いて「バンドルインストール」を実行すると、問題が解決しました。誰かに役立つかもしれないので、ここに投稿すると思いました。Daveがしなければならなかったように、「g.template_engine:haml」のものを追加する必要はありませんでした。

于 2011-05-21T13:57:12.950 に答える
2

RSpecがhamlで記述されたアクションビューテンプレートを見つけられないという同じ問題がありました。次に、テスト環境がhamlをレンダリングエンジンとして考慮していないことに気付きました。

Missing template pages/home with {:handlers=>[:erb, :rjs ...

そこで、haml-railsgemをテストグループに追加して修正します。

したがって、同じ問題がある場合は、次のことをお勧めします。

group :development, :test do
  gem 'rspec-rails'
  ...
  gem 'haml-rails'
end
于 2013-06-10T17:11:15.577 に答える