From 8bc82278dddfe23d84ac24ffe83f92c816028dd8 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 16 Dec 2004 02:06:11 +0000 Subject: Added that controllers will now attempt to require a model dependency with their name and in a singular attempt for their name. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@175 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 4 ++++ actionpack/lib/action_controller/dependencies.rb | 12 ++++++++++++ 2 files changed, 16 insertions(+) (limited to 'actionpack') 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 -- cgit v1.2.3