mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Include ParamsWrapper in AC::API
ParamsWrapper was initially removed from API controllers according to the following discusision: https://github.com/rails-api/rails-api/issues/33 However, we're including it again so Rails API devs can decide whether to enable or disable it.
This commit is contained in:
parent
ebcc15ca4e
commit
a2c9a73084
2 changed files with 31 additions and 1 deletions
|
@ -128,7 +128,11 @@ module ActionController
|
|||
|
||||
# Add instrumentations hooks at the bottom, to ensure they instrument
|
||||
# all the methods properly.
|
||||
Instrumentation
|
||||
Instrumentation,
|
||||
|
||||
# Params wrapper should come before instrumentation so they are
|
||||
# properly showed in logs
|
||||
ParamsWrapper
|
||||
]
|
||||
|
||||
MODULES.each do |mod|
|
||||
|
|
26
actionpack/test/controller/api/params_wrapper_test.rb
Normal file
26
actionpack/test/controller/api/params_wrapper_test.rb
Normal file
|
@ -0,0 +1,26 @@
|
|||
require 'abstract_unit'
|
||||
|
||||
class ParamsWrapperForApiTest < ActionController::TestCase
|
||||
class UsersController < ActionController::API
|
||||
attr_accessor :last_parameters
|
||||
|
||||
wrap_parameters :person, format: [:json]
|
||||
|
||||
def test
|
||||
self.last_parameters = params.except(:controller, :action)
|
||||
head :ok
|
||||
end
|
||||
end
|
||||
|
||||
class Person; end
|
||||
|
||||
tests UsersController
|
||||
|
||||
def test_specify_wrapper_name
|
||||
@request.env['CONTENT_TYPE'] = 'application/json'
|
||||
post :test, params: { 'username' => 'sikachu' }
|
||||
|
||||
expected = { 'username' => 'sikachu', 'person' => { 'username' => 'sikachu' }}
|
||||
assert_equal expected, @controller.last_parameters
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue