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! ^ _ ^