Force your params encoding in Rails
If you have problems with your params encodings, use a Rack middleware to encode them before rails params parsing code is executed.
First, build a class according to the signature of a rack middleware layer.
#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
Then register the middleware from application.rb.
#config/application.rb
config.middleware.insert_before ActionDispatch::ParamsParser, "ForceParamsEncoding"
And that's all! ^_^
Written by Carlos Hernández
Related protips
1 Response
Did you benchmark performance of this solution?
over 1 year ago
·
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Rails
Authors
Related Tags
#rails
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#