PHPだと開発中にdisplay_errorsをOFFにしてしまい、「画面が真っ白だ!」という事態によく遭遇したものですが、Railsに移行してから久しぶりに画面真っ白でちょっとはまりました。
- Ruby 1.9.3 + Rails 3.2.3 + development環境
- webrick/unicornどちらでも発生
- 通常画面がすべて真っ白(render結果が空)
render :text => 'ABC'
なども出力されない- どこにもエラーなどは出ない
- 例外をraiseした際のbacktrace画面は、正常に表示される
結論から言うと、トップレベルにeachメソッドが定義されているとこの現象が発生するようです。
# config/initializers/test.rb def each end
そんなことやらないよ!と思うのですが、便利そうだったrspec_multi_matchersのgemがそんなことをやっていたため...
https://github.com/gregwebs/rspec-multi-matchers/
https://github.com/gregwebs/rspec-multi-matchers/blob/master/lib/match_each.rb
現状、Rails3で上記Gemは使わないのが無難ですね。
Content-Lengthやchunked周りも少し怪しい挙動で困っていたので、良い機会だし、今度ActionDispatchを読み解いてみようと思います。