Força a codificação de parâmetros no Rails

Se você tiver problemas com suas codificações de parâmetros, use um middleware Rack para codificá-los antes que o código de análise de parâmetros do rails seja executado.

Primeiro, crie uma classe de acordo com a assinatura de uma camada de middleware de rack.

#lib/force_params_encoding.rb
class ForceParamsEncoding
def initialize(app)
@app = app
end

def call(env)
@request = Rack::Request.new(env)
params = @request.params
params.each { |k, v| params[k] = v.force_encoding("ISO-8859-1").encode("UTF-8") }
@app.call(env)
end
end

Em seguida, registre o middleware de application.rb.

#config/application.rb
config
.middleware.insert_before ActionDispatch::ParamsParser, "ForceParamsEncoding"

E isso é tudo! ^ _ ^