aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2011-08-16 19:14:06 +0100
committerJon Leighton <j@jonathanleighton.com>2011-08-16 19:14:20 +0100
commit8e236152457ed48bb436e9bffb4c5d6d4b6a26d4 (patch)
tree8399705099848741f225d1c71916438717bc82b0
parentd0d25a9317aaea794f30e067e9388fe4e08bcde5 (diff)
downloadrails-8e236152457ed48bb436e9bffb4c5d6d4b6a26d4.tar.gz
rails-8e236152457ed48bb436e9bffb4c5d6d4b6a26d4.tar.bz2
rails-8e236152457ed48bb436e9bffb4c5d6d4b6a26d4.zip
Use lazy load hooks to set parameter wrapping configuration. This means that it doesn't force Action Controller / Active Record to load, but it doesn't fail if they have already loaded. Thanks @josevalim for the hint.
-rw-r--r--actionpack/lib/action_controller/metal/params_wrapper.rb2
-rw-r--r--actionpack/test/controller/params_wrapper_test.rb7
-rw-r--r--railties/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt16
3 files changed, 9 insertions, 16 deletions
diff --git a/actionpack/lib/action_controller/metal/params_wrapper.rb b/actionpack/lib/action_controller/metal/params_wrapper.rb
index dfc4e3d72c..2d8afc3a78 100644
--- a/actionpack/lib/action_controller/metal/params_wrapper.rb
+++ b/actionpack/lib/action_controller/metal/params_wrapper.rb
@@ -121,8 +121,6 @@ module ActionController
_set_wrapper_defaults(_wrapper_options.slice(:format).merge(options), model)
end
- alias :wrap_parameters= :wrap_parameters
-
# Sets the default wrapper key or model which will be used to determine
# wrapper key and attribute names. Will be called automatically when the
# module is inherited.
diff --git a/actionpack/test/controller/params_wrapper_test.rb b/actionpack/test/controller/params_wrapper_test.rb
index e1914cf894..7bef1e8d5d 100644
--- a/actionpack/test/controller/params_wrapper_test.rb
+++ b/actionpack/test/controller/params_wrapper_test.rb
@@ -180,13 +180,6 @@ class ParamsWrapperTest < ActionController::TestCase
assert_parameters({ 'username' => 'sikachu', 'title' => 'Developer', 'user' => { 'username' => 'sikachu', 'title' => 'Developer' }})
end
end
-
- def test_assignment_alias
- with_default_wrapper_options do
- UsersController.wrap_parameters = { :format => [:foo] }
- assert_equal({ :format => [:foo], :name => "user" }, UsersController._wrapper_options)
- end
- end
end
class NamespacedParamsWrapperTest < ActionController::TestCase
diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt
index b7b344a62d..d640f578da 100644
--- a/railties/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt
+++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt
@@ -3,12 +3,14 @@
# This file contains settings for ActionController::ParamsWrapper which
# is enabled by default.
-<%= app_const %>.configure do
- # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
- config.action_controller.wrap_parameters = { <%= key_value :format, "[:json]" %> }
+# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
+ActiveSupport.on_load(:action_controller) do
+ wrap_parameters <%= key_value :format, "[:json]" %>
+end
- <%- unless options.skip_active_record? -%>
- # Disable root element in JSON by default.
- config.active_record.include_root_in_json = false
- <%- end -%>
+<%- unless options.skip_active_record? -%>
+# Disable root element in JSON by default.
+ActiveSupport.on_load(:active_record) do
+ self.include_root_in_json = false
end
+<%- end -%>