aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--railties/CHANGELOG7
-rw-r--r--railties/lib/initializer.rb20
2 files changed, 21 insertions, 6 deletions
diff --git a/railties/CHANGELOG b/railties/CHANGELOG
index c53b26deb5..4403e58474 100644
--- a/railties/CHANGELOG
+++ b/railties/CHANGELOG
@@ -1,5 +1,12 @@
*SVN*
+* Remove the uncanny default of adding all app/models/*/ directories to the load path. This change will break application which expect the current behavior. As
+documented in initializer.rb, the workaround is:
+
+ config.autoload_paths += Dir[RAILS_ROOT + '/app/models/*/']
+
+References #6031. [Nicholas Seckar].
+
* Update to script.aculo.us 1.6.3 [Thomas Fuchs]
* Update to Prototype 1.5.0_rc1 [sam]
diff --git a/railties/lib/initializer.rb b/railties/lib/initializer.rb
index e4c55023f1..d48f6fb23f 100644
--- a/railties/lib/initializer.rb
+++ b/railties/lib/initializer.rb
@@ -434,6 +434,18 @@ module Rails
# An array of paths from which Rails will automatically load classes and
# modules from. By default, all +app+, +lib+, +vendor+ and mock paths are
# included in this list.
+ #
+ # To automatically load constants from a directory, add it to this array. For
+ # example, if you organize your models in subdirectories (not modules), you
+ # would add:
+ #
+ # config.autoload_paths += Dir[RAILS_ROOT + '/app/models/*/']
+ #
+ # and if you do not have any models in the root of app/models, you would
+ # also want:
+ #
+ # config.autoload_paths.remove RAILS_ROOT + '/app/models'
+ #
attr_accessor :autoload_paths
# An array of paths from which Rails will automatically load from only once.
@@ -551,9 +563,7 @@ module Rails
# Add the app's controller directory
paths.concat(Dir["#{root_path}/app/controllers/"])
- # Then model subdirectories.
- # TODO: Don't include .rb models as load paths
- paths.concat(Dir["#{root_path}/app/models/[_a-z]*"])
+ # Then components subdirectories.
paths.concat(Dir["#{root_path}/components/[_a-z]*"])
# Followed by the standard includes.
@@ -591,9 +601,7 @@ module Rails
# Add the app's controller directory
paths.concat(Dir["#{root_path}/app/controllers/"])
- # Then model subdirectories.
- # TODO: Don't include .rb models as load paths
- paths.concat(Dir["#{root_path}/app/models/[_a-z]*"])
+ # Then component subdirectories.
paths.concat(Dir["#{root_path}/components/[_a-z]*"])
# Followed by the standard includes.