我有一个API控制器,它接收有关媒体文件路径和id3标记的信息,并使用PostgreSQL/Rails将它们保存到活动记录实例中.

然而,有时用户会发送字符串,例如:

"genre"=>"Hip-Hop\u0000Hip-Hop/Rap"

而Rails/Postgres在try 坚持save%时并不完全满意这一点:

An ArgumentError occurred in internals#receive:

 string contains null byte
 activerecord (3.2.21) lib/active_record/connection_adapters/postgresql_adapter.rb:1172:in `send_query_prepared'

如何在Ruby中清除这个字符串以完全删除空字节?

推荐答案

String上的gsub法可能是合适的.你只要做string.gsub("\u0000", '')就可以摆脱它们.

http://ruby-doc.org/core-2.1.1/String.html#method-i-gsub

Postgresql相关问答推荐

将几个左连接合并为一个

如何使用Docker安装PostgreSQL扩展

如何在Common Lisp中使用Postmodern在表更改时获得通知?

在PostgreSQL中,`MY_VARIABLE IN(<;Long_ARRAY_of_Items>;)`何时是FAST?

具有有限字母表的自定义字符串类型

如何使用 PostgreSQL 数据库中的函数和存储过程从动态表中获取所有数据?参数传入的表名

订阅标签保存在哪个表中?

使用 pgx.CopyFrom 将 csv 数据批量插入到 postgres 数据库中

如何在 postgresql 中创建一个空的 JSON 对象?

将数组插入 Postgresql 数据库

SQLAlchemy 中使用什么类型存储字节字符串?

如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

Select 中的 PostgreSQL 正则表达式捕获组

如何为 postgres 连接设置 application_name?

如何将主键添加到视图?

使用 Hibernate 注释映射 PostgreSQL 串行类型

如何使用 sql 或 phpPgAdmin 更改 PostgreSQL 数据库的数据库编码?

实时监控 PostgreSQL 查询的应用程序?

Postgres DB 上的整数超出范围

在 Select (PostgreSQL/pgAdmin) 中将布尔值返回为 TRUE 或 FALSE