method

param_encoding

Importance_2
Ruby on Rails latest stable (v7.1.3.2) - 0 notes - Class: ClassMethods
param_encoding(action, param, encoding) public

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.

Show source
Register or log in to add new notes.