aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2011-05-02 14:08:44 -0700
committerDavid Heinemeier Hansson <david@loudthinking.com>2011-05-02 14:08:44 -0700
commit79a9bebcbf53673cab5d588869819702ac5a9607 (patch)
treebc7fd211afdd2424f62d90d8637d351c0664c7f5 /railties
parent7f5ff5df2dc2dd8d9aea4e3d944b41f89e1fb3da (diff)
parent8c9e4d520291871e5319bc0e0a890527d8aea099 (diff)
downloadrails-79a9bebcbf53673cab5d588869819702ac5a9607.tar.gz
rails-79a9bebcbf53673cab5d588869819702ac5a9607.tar.bz2
rails-79a9bebcbf53673cab5d588869819702ac5a9607.zip
Merge pull request #359 from sikachu/params_wrapper.
Add `ActionController::ParamsWrapper` to wrap JSON parameters into a nested parameters.
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt12
-rw-r--r--railties/test/application/configuration_test.rb10
2 files changed, 22 insertions, 0 deletions
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
new file mode 100644
index 0000000000..60137ed2bb
--- /dev/null
+++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt
@@ -0,0 +1,12 @@
+# Be sure to restart your server when you modify this file.
+#
+# This file contains the settings for ActionController::ParametersWrapper
+# which will be enabled by default in the upcoming version of Ruby on Rails.
+
+# Enable parameter wrapping for JSON. You can disable this by set :format to empty array.
+ActionController::Base.wrap_parameters :format => [:json]
+
+# Disable root element in JSON by default.
+if defined?(ActiveRecord)
+ ActiveRecord::Base.include_root_in_json = false
+end
diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb
index ab3eb4c9e7..8f96f4c57b 100644
--- a/railties/test/application/configuration_test.rb
+++ b/railties/test/application/configuration_test.rb
@@ -432,5 +432,15 @@ module ApplicationTests
get "/"
assert_equal 'true', last_response.body
end
+
+ test "config.action_controller.wrap_parameters is set in ActionController::Base" do
+ app_file 'config/initializers/wrap_parameters.rb', <<-RUBY
+ ActionController::Base.wrap_parameters :format => [:json]
+ RUBY
+ require "#{app_path}/config/environment"
+ require 'action_controller/base'
+
+ assert_equal [:json], ActionController::Base._wrapper_options[:format]
+ end
end
end