web-dev-qa-db-ja.com

Rails開発環境で500.htmlをテストする方法は?

開発環境を使用して、私のRailsアプリで500エラーページをテストしたいと思います。

私はすでにこれを試しましたconfig/environments/development.rb

config.action_controller.consider_all_requests_local = false

しかし、これは効果がないようです。

45
tbk

次のいずれかを行うことができます。

  1. Railsがデフォルトでローカルリクエストと見なすlocalhostまたは127.0.0.1以外のアドレスを使用してアプリケーションにアクセスする
  2. local_request?application_controller.rbを次のようにオーバーライドします。
def local_request?
  false
end

2番目は停止しますRails localhostおよび127.0.0.1からのリクエストをconsider_all_requests_local = falseと組み合わせたローカルリクエストとして処理すると、500.htmlページが表示されます。

11
Shadwell

これまでにこれを行うことがわかった唯一の方法は、development.rbを設定することです

config.consider_all_requests_local = false

次に、ローカルIPアドレスを使用してURLにアクセスします:http://192.168.1.135:3000/blah

上記の他の設定は効果がないようです。

78
u2622

提案された解決策はどれもmy Rails 3 app。で機能しませんでした。私にとってすばやくて汚い解決策は、エラーページに直接アクセスして、レンダリングされたHTMLを確認することでした。たとえば、

http://0.0.0.0:3000/404.html

http://0.0.0.0:3000/500.html
27
Jeff Poulton

http:// localhost:3000/404 または/ 500を実行して、これらのページにアクセスし、どのように表示されるかを確認してください。

23
Stephane Paquet

設定に加えて:config.consider_all_requests_local = false設定する必要もありました:config.action_dispatch.show_exceptions = true

7
Aaron Henderson

以下の行をapplication_controllerに追加する必要があります。

unless  ActionController::Base.consider_all_requests_local
    rescue_from Exception, :with => :render_500
    if  ActiveRecord::RecordNotFound
      rescue_from Exception, :with => :render_404
    end
    rescue_from ActionController::RoutingError, :with => :render_404
    rescue_from ActionController::UnknownController, :with => :render_404
    rescue_from ActionController::UnknownAction, :with => :render_404
end

次に、以下の設定で実行してみてください。

config.action_controller.consider_all_requests_local = false in config/environments/development.rb:

それが動作します。 application_controller.rbに関数を記述して、各エラーメッセージのレイアウトを表示することを忘れないでください。

4
Unni

500エラーを強制的に表示させたい場合は、これをビューに追加するだけです。

hamlの例:

= render :partial => "broken", :status => 500
0
user3681419

私がいじくるのに適切な設定はこれだと思います:

config.action_view.debug_rjs = false

なぜそれがrjsとラベル付けされているのかは完全には明らかではありません。

0
tadman