instance method param_encoding

Ruby on Rails 7.1.6

Since v6.1.7.10

Available in: v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

param_encoding(action, param, encoding)

Specify the encoding for a parameter on an action. If not specified the default is UTF-8.

You can specify a binary (ASCII_8BIT) parameter with:

class RepositoryController < ActionController::Base
  # This specifies that file_path is not UTF-8 and is instead ASCII_8BIT
  param_encoding :show, :file_path, Encoding::ASCII_8BIT

  def show
    @repo = Repository.find_by_filesystem_path params[:file_path]

    # params[:repo_name] remains UTF-8 encoded
    @repo_name = params[:repo_name]
  end

  def index
    @repositories = Repository.all
  end
end

The file_path parameter on the show action would be encoded as ASCII-8BIT, but all other arguments will remain UTF-8 encoded. This is useful in the case where an application must handle data but encoding of the data is unknown, like file system data.

Parameters

action req
param req
encoding req
Source
# File actionpack/lib/action_controller/metal/parameter_encoding.rb, line 77
      def param_encoding(action, param, encoding)
        @_parameter_encodings[action.to_s][param.to_s] = encoding
      end

Defined in actionpack/lib/action_controller/metal/parameter_encoding.rb line 77 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionController::ParameterEncoding::ClassMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close