我试图从PayPal的IPN保存参数,以便稍后可以访问它们并用于交叉引用。的代码,将其保存在paypal_log
列ActionController上的强制编码::参数
简单一点:
@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变量,只有一个散列。任何可能的解决方案强制所有参数的编码?