diff options
author | Shuhei Kagawa <s-kagawa@m3.com> | 2015-03-27 15:41:05 +0900 |
---|---|---|
committer | Shuhei Kagawa <shuhei.kagawa@gmail.com> | 2015-03-28 10:40:58 +0900 |
commit | 1b0526eaac87342b5413183e082b51b10a6ace6e (patch) | |
tree | ae3d341383ed623a7a13b8104596cdba71d58496 /actionpack/lib | |
parent | e1b967e7e0edc0f59b49558d2c3d4afd9125a59f (diff) | |
download | rails-1b0526eaac87342b5413183e082b51b10a6ace6e.tar.gz rails-1b0526eaac87342b5413183e082b51b10a6ace6e.tar.bz2 rails-1b0526eaac87342b5413183e082b51b10a6ace6e.zip |
Return super in ActionController::Parameters.const_missing
The current implementation of ActionController::Parameters.const_missing
returns `ActionController::Parameters.always_permitted_parameters` even
if its `super` returns a constant without raising error. This prevents its
subclass in a autoloading module/class from taking advantage of
autoloading constants.
class SomeParameters < ActionController::Parameters
def do_something
DefinedSomewhere.do_something
end
end
In the code above, `DefinedSomewhere` is to be autoloaded with
`Module.const_missing` but `ActionController::Parameters.const_missing`
returns `always_permitted_parameters` instead of the autoloaded
constant.
This pull request fixes the issue respecting `const_missing`'s `super`.
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/metal/strong_parameters.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/strong_parameters.rb b/actionpack/lib/action_controller/metal/strong_parameters.rb index f19c4201ba..e30c9c5ade 100644 --- a/actionpack/lib/action_controller/metal/strong_parameters.rb +++ b/actionpack/lib/action_controller/metal/strong_parameters.rb @@ -117,7 +117,7 @@ module ActionController self.always_permitted_parameters = %w( controller action ) def self.const_missing(const_name) - super unless const_name == :NEVER_UNPERMITTED_PARAMS + return super unless const_name == :NEVER_UNPERMITTED_PARAMS ActiveSupport::Deprecation.warn(<<-MSG.squish) `ActionController::Parameters::NEVER_UNPERMITTED_PARAMS` has been deprecated. Use `ActionController::Parameters.always_permitted_parameters` instead. |