メディアファイルのパスとid3タグに関する情報を受け取り、それらをPostgreSQL/Railsを使用してActive Recordインスタンスに保存するAPIコントローラーがあります。
ただし、ユーザーは次のような文字列を送信することがあります。
"genre"=>"Hip-Hop\u0000Hip-Hop/Rap"
そして、Rails/Postgresは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でこの文字列をクリーンアップして、nullバイトを完全に削除するにはどうすればよいですか?
gsub
のString
メソッドがおそらく適しています。 string.gsub("\u0000", '')
を実行して、それらを取り除くことができます。