【问题标题】:Rails: "Mysql2::Error: Incorrect string value:" when trying to save "params.inspect"Rails:“Mysql2::Error: Incorrect string value:”尝试保存“params.inspect”时
【发布时间】:2016-08-10 20:07:12
【问题描述】:

我正在尝试将 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

谢谢

【问题讨论】:

  • 意外的字符串值是什么?是吗?
  • 我相信 - 其他一切看起来都像“正常”角色......
  • params.to_s.encoding 带给你什么?
  • 您是否尝试过强制编码为 UTF-8?
  • @13aal - 是的,它显示在最新块代码的 OP 中。

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


【解决方案1】:

尝试使用params 而不是params.inspect

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

【讨论】:

    猜你喜欢
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    相关资源
    最近更新 更多