Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

When an unexpected exception is caught, tell the administrator to rea…

…d the log file for more information about the error. This should make things less confusing for developers who are new to Rails.

Signed-off-by: Michael Koziarski <michael@koziarski.com>
  • Loading branch information...
commit f9f1ab4e3ddeacadf2a7bce021d742f08f67905f 1 parent eec5eb2
@FooBarWidget FooBarWidget authored NZKoz committed
Showing with 39 additions and 0 deletions.
  1. +2 −0  railties/html/500.html
  2. +37 −0 railties/test/error_page_test.rb
View
2  railties/html/500.html
@@ -25,6 +25,8 @@
<div class="dialog">
<h1>We're sorry, but something went wrong.</h1>
<p>We've been notified about this issue and we'll take a look at it shortly.</p>
+ <p><small>(If you're the administrator of this website, then please read
+ the log file "<%=h RAILS_ENV %>.log" to find out what went wrong.)</small></p>
</div>
</body>
</html>
View
37 railties/test/error_page_test.rb
@@ -0,0 +1,37 @@
+require 'abstract_unit'
+require 'action_controller'
+require 'action_controller/test_process'
+
+RAILS_ENV = "test"
+
+module Rails
+ def self.public_path
+ File.expand_path(File.join(File.dirname(__FILE__), "..", "html"))
+ end
+end
+
+class ErrorPageController < ActionController::Base
+ def crash
+ raise StandardError, "crash!"
+ end
+end
+
+ActionController::Routing::Routes.draw do |map|
+ map.connect ':controller/:action/:id'
+end
+
+class ErrorPageControllerTest < Test::Unit::TestCase
+ def setup
+ @controller = ErrorPageController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+
+ ActionController::Base.consider_all_requests_local = false
+ end
+
+ def test_500_error_page_instructs_system_administrator_to_check_log_file
+ get :crash
+ expected_log_file = "#{RAILS_ENV}.log"
+ assert_not_nil @response.body.index(expected_log_file)
+ end
+end
Please sign in to comment.
Something went wrong with that request. Please try again.