Methods

Instance Public methods

_set_wrapper_options(options)

📝 Source code
# File actionpack/lib/action_controller/metal/params_wrapper.rb, line 191
      def _set_wrapper_options(options)
        self._wrapper_options = Options.from_hash(options)
      end
🔎 See on GitHub

inherited(klass)

Sets the default wrapper key or model which will be used to determine wrapper key and attribute names. Called automatically when the module is inherited.

📝 Source code
# File actionpack/lib/action_controller/metal/params_wrapper.rb, line 246
      def inherited(klass)
        if klass._wrapper_options.format.any?
          params = klass._wrapper_options.dup
          params.klass = klass
          klass._wrapper_options = params
        end
        super
      end
🔎 See on GitHub

wrap_parameters(name_or_model_or_options, options = {})

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.

📝 Source code
# File actionpack/lib/action_controller/metal/params_wrapper.rb, line 222
      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
🔎 See on GitHub