Rails:“Mysql2 :: Error:不正确的字符串值:”当试图保存“params.inspect”时

时间:2016-04-18 21:52:08

标签: mysql ruby-on-rails ruby encoding character-encoding

我正在尝试将params的输出保存到数据库(我保存了这个:params.inspect) - 这是一个应该保存的字符串示例:

> {\"utf8\"=>\"✓\", \"_method\"=>\"patch\", \"authenticity_token\"=>\"fpQC8FY8+qztD41jjcFSJRars539KRshw/vczmmJd9Q=\",
> \"car\"=>{\"role_type\"=>\"1\", \"admin_id\"=>\"67\",
> \"branch_id\"=>\"1\", \"template_id\"=>\"21\", \"cost\"=>\"0.00\",
> \"carrier_additional_cost\"=>\"0.00\", ...

首先,我试图像这样保存参数:

all_params      = params.except(:controller, :action).inspect

但它没有成功。所以:

all_params      = params.except(:controller, :action).inspect.encode("iso-8859-1")

还有:

all_params      = params.except(:controller, :action).inspect.encode("iso-8859-1").force_encoding("utf-8")

返回相同的错误。

如何正确保存params.inspect的输出?

我尝试保存此数据的列是text,而不是string

谢谢

1 个答案:

答案 0 :(得分:0)

尝试使用params代替params.inspect

params的示例输出为
{"controller"=>"users", "action"=>"show", "id"=>"1"}
这是一个哈希,我认为你想要保存在数据库中。