aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/CHANGELOG4
-rw-r--r--actionpack/lib/action_controller/dependencies.rb12
2 files changed, 16 insertions, 0 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index f08e5c9a5d..e60b7eb0da 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,9 @@
*SVN*
+* Added that controllers will now attempt to require a model dependency with their name and in a singular attempt for their name.
+ So both PostController and PostsController will automatically have the post.rb model required. If no model is found, no error is raised,
+ as it is then expected that no match is available and the programmer will have included his own models.
+
* Fixed DateHelper#date_select so that you can pass include_blank as an option even if you don't use start_year and end_year #59 [what-a-day]
* Added that controllers will now search for a layout in $template_root/layouts/$controller_name.r(html|xml), so PostsController will look
diff --git a/actionpack/lib/action_controller/dependencies.rb b/actionpack/lib/action_controller/dependencies.rb
index 5a3dd48f89..6680d6cffd 100644
--- a/actionpack/lib/action_controller/dependencies.rb
+++ b/actionpack/lib/action_controller/dependencies.rb
@@ -15,6 +15,8 @@ module ActionController #:nodoc:
cattr_accessor :reload_dependencies
end
+ base.class_eval { class << self; alias_method :inherited_without_model, :inherited; end }
+
base.extend(ClassMethods)
end
@@ -62,6 +64,16 @@ module ActionController #:nodoc:
end
end
end
+
+ def inherited(child)
+ inherited_without_model(child)
+ begin
+ child.model(child.controller_name)
+ child.model(Inflector.singularize(child.controller_name))
+ rescue LoadError
+ # No neither singular or plural model available for this controller
+ end
+ end
end
end
end