Method: ActionController::ParamsWrapper::ClassMethods#wrap_parameters

Defined in:
actionpack/lib/action_controller/metal/params_wrapper.rb

#wrap_parameters(name_or_model_or_options, options = {}) ⇒ Object

Sets the name of the wrapper key, or the model which ParamsWrapper would use to determine the attribute names from.

#### Examples

wrap_parameters format: :xml
  # enables the parameter wrapper for XML format

wrap_parameters :person
  # wraps parameters into params[:person] hash

wrap_parameters Person
  # wraps parameters by determining the wrapper key from Person class
  # (:person, in this case) and the list of attribute names

wrap_parameters include: [:username, :title]
  # wraps only :username and :title attributes from parameters.

wrap_parameters false
  # disables parameters wrapping for this controller altogether.

#### Options

  • :format - The list of formats in which the parameters wrapper will be enabled.

  • :include - The list of attribute names which parameters wrapper will wrap into a nested hash.

  • :exclude - The list of attribute names which parameters wrapper will exclude from a nested hash.



221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
# File 'actionpack/lib/action_controller/metal/params_wrapper.rb', line 221

def wrap_parameters(name_or_model_or_options, options = {})
  model = nil

  case name_or_model_or_options
  when Hash
    options = name_or_model_or_options
  when false
    options = options.merge(format: [])
  when Symbol, String
    options = options.merge(name: name_or_model_or_options)
  else
    model = name_or_model_or_options
  end

  opts = Options.from_hash _wrapper_options.to_h.slice(:format).merge(options)
  opts.model = model
  opts.klass = self

  self._wrapper_options = opts
end