In Ruby 2.4, Hash#compact exists and returns a Hash, while in
Ruby 2.3,
Hash#compact is implemented by Rails and returns a new
`ActionController::Parameters` instance in this case.
Also, `ActionController::Parameters#compact` is deprecated in
Rails 5.1 so we're using `reject { |_, value| value.nil? }` instead.
Signed-off-by: Rémy Coutable <remy@rymai.me>