diff options
author | Xavier Noria <fxn@hashref.com> | 2018-09-07 23:11:23 +0200 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2018-09-07 23:32:54 +0200 |
commit | c03bba4f1f03bad7dc034af555b7f2b329cf76f5 (patch) | |
tree | b069cc53c5ee48238dd8340129911b1ceafda217 /guides | |
parent | c3e569550ca0a90561fe990f519719ba52402504 (diff) | |
download | rails-c03bba4f1f03bad7dc034af555b7f2b329cf76f5.tar.gz rails-c03bba4f1f03bad7dc034af555b7f2b329cf76f5.tar.bz2 rails-c03bba4f1f03bad7dc034af555b7f2b329cf76f5.zip |
trace autoloads, and document hints for troubleshooting
Closes #32885.
Diffstat (limited to 'guides')
-rw-r--r-- | guides/source/autoloading_and_reloading_constants.md | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/guides/source/autoloading_and_reloading_constants.md b/guides/source/autoloading_and_reloading_constants.md index 6298651e4a..b3f923a017 100644 --- a/guides/source/autoloading_and_reloading_constants.md +++ b/guides/source/autoloading_and_reloading_constants.md @@ -1350,3 +1350,34 @@ With the [Spring](https://github.com/rails/spring) pre-loader (included with new Occasionally you may need to explicitly eager_load by using `Rails .application.eager_load!` in the setup of your tests -- this might occur if your [tests involve multithreading](https://stackoverflow.com/questions/25796409/in-rails-how-can-i-eager-load-all-code-before-a-specific-rspec-test). + +## Troubleshooting + +### Tracing Autoloads + +Active Support is able to report constants as they are autoloaded. To enable these traces in a Rails application, put the following two lines in some initializer: + +```ruby +ActiveSupport::Dependencies.logger = Rails.logger +ActiveSupport::Dependencies.verbose = true +``` + +### Where is a Given Autoload Triggered? + +If constant `Foo` is being autoloaded, and you'd like to know where is that autoload coming from, just throw + +```ruby +puts caller +``` + +at the top of `foo.rb` and inspect the printed stack trace. + +### Which Constants Have Been Autoloaded? + +At any given time, + +```ruby +ActiveSupport::Dependencies.autoloaded_constants +``` + +has the collection of constants that have been autoloaded so far. |