Я пытаюсь сохранить параметры из IPN PayPal, чтобы их можно было получить позже и использовать для перекрестной ссылки.Форсирование кодировки на ActionController :: Параметры
Простой немного кода, который сохраняет его в paypal_log
колонке:
@order.paypal_log = params.to_json
работал отлично, толкнул производства и до сих пор работает нормально. Исследуя журналы на другой вопрос, я наткнулся на следующую строку:
Completed 500 Internal Server JSON::GeneratorError (source sequence is illegal/malformed utf-8):
Линия она указывает на это выше params.to_json
После поисков я обнаружил force_encoding("ISO-8859-1").encode("UTF-8")
(source)
Я изменил линия до params.force_encoding("ISO-8859-1").encode("UTF-8").to_json
и провела мои тесты с ошибкой:
undefined method `force_encoding' for #<ActionController::Parameters:0x000000073357f0>
Это делает меня тем, что по какой-то причине вы не можете разобрать всю переменную params, только хэш. Любое возможное решение для принудительного кодирования для всех параметров?