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.

This commit is contained in:
Jon Leighton 2011-08-16 19:14:06 +01:00
parent d0d25a9317
commit 8e23615245
3 changed files with 10 additions and 17 deletions

@ -121,8 +121,6 @@ def wrap_parameters(name_or_model_or_options, options = {})
_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.

@ -180,13 +180,6 @@ def test_not_wrapping_abstract_model
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

@ -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]" %> }
<%- unless options.skip_active_record? -%>
# Disable root element in JSON by default.
config.active_record.include_root_in_json = false
<%- end -%>
# 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.
ActiveSupport.on_load(:active_record) do
self.include_root_in_json = false
end
<%- end -%>