铁轨:;Mysql2::错误:字符串值不正确:";当试图保存时;“参数检查”;
我正在尝试将params的输出保存到数据库中(我正在保存:铁轨:;Mysql2::错误:字符串值不正确:";当试图保存时;“参数检查”;,mysql,ruby-on-rails,ruby,encoding,character-encoding,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\"=&g
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
的示例输出为
{“控制器”=>“用户”、“操作”=>“显示”、“id”=>“1”}
这是一个散列,我认为这是您希望保存在数据库中的内容。意外的字符串值是多少?是✓代码>?我相信是的-所有其他字符看起来都像“正常”字符…参数to_.s.encoding
给了你什么?你有没有尝试将编码强制为UTF-8?@13aal-是的,它在最新的块代码的OP中显示。