diff options
author | José Valim <jose.valim@gmail.com> | 2011-09-23 16:46:33 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-09-23 16:46:33 +0200 |
commit | e8987c30d0dc3ae5903a6d3a6e293641759b6fc4 (patch) | |
tree | 5830b6162bdd90980ce6f2ddf9170aec01960eb2 /actionpack/lib/action_controller/metal | |
parent | b2f34d1e3591df0f19f01ba30160661175c9a6b6 (diff) | |
download | rails-e8987c30d0dc3ae5903a6d3a6e293641759b6fc4.tar.gz rails-e8987c30d0dc3ae5903a6d3a6e293641759b6fc4.tar.bz2 rails-e8987c30d0dc3ae5903a6d3a6e293641759b6fc4.zip |
Use safe_constantize where possible.
Diffstat (limited to 'actionpack/lib/action_controller/metal')
-rw-r--r-- | actionpack/lib/action_controller/metal/params_wrapper.rb | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/actionpack/lib/action_controller/metal/params_wrapper.rb b/actionpack/lib/action_controller/metal/params_wrapper.rb index 6acbb23907..e0d8e1c992 100644 --- a/actionpack/lib/action_controller/metal/params_wrapper.rb +++ b/actionpack/lib/action_controller/metal/params_wrapper.rb @@ -141,19 +141,16 @@ module ActionController # try to find Foo::Bar::User, Foo::User and finally User. def _default_wrap_model #:nodoc: return nil if self.anonymous? - model_name = self.name.sub(/Controller$/, '').singularize begin - model_klass = model_name.constantize - rescue NameError, ArgumentError => e - if e.message =~ /is not missing constant|uninitialized constant #{model_name}/ + if model_klass = model_name.safe_constantize + model_klass + else namespaces = model_name.split("::") namespaces.delete_at(-2) break if namespaces.last == model_name model_name = namespaces.join("::") - else - raise end end until model_klass |