Ruby on rails Rails.cache.delete中的ArgumentError(UTF-8中的字节序列无效)

Ruby on rails Rails.cache.delete中的ArgumentError(UTF-8中的字节序列无效),ruby-on-rails,caching,ruby-on-rails-5,Ruby On Rails,Caching,Ruby On Rails 5,我陷入了一个无法解释的错误之中 该错误仅在DigitalOcean服务器的生产环境中发生。Rails 5.0 Ruby 2.2.3。 在开发中,Ubuntu运行良好,测试无误,缓存性能良好 问题是在生产中执行Rails.cache.delete\u matched时 我已经尝试了所有的组合,我无法摆脱这个错误 缓存: retorn_text=Rails.cache.fetch("Translation/#{company_id}/#{text_a_traduir}/#{head_locale}/

我陷入了一个无法解释的错误之中

该错误仅在DigitalOcean服务器的生产环境中发生。Rails 5.0 Ruby 2.2.3。 在开发中,Ubuntu运行良好,测试无误,缓存性能良好

问题是在生产中执行
Rails.cache.delete\u matched

我已经尝试了所有的组合,我无法摆脱这个错误

缓存:

retorn_text=Rails.cache.fetch("Translation/#{company_id}/#{text_a_traduir}/#{head_locale}/#{locale}", expires_in: 1.year) do
...
end
在保存后的
回调中,我想从中删除所有缓存
“翻译/{company_id}/
做:

Rails.cache.delete_matched("Translation/#{company_id}/.+")

还有很多我不记得的其他选择

所有这些都会抛出错误
ArgumentError(UTF-8中的字节序列无效)


谢谢

最后看来我可以让它工作了,我不确定解决方案是这两个还是只有一个:

Rails.cache.delete_matched(/Translation\/#{company_id}\/.+/)
--

此更改和此tmp清除后,它将正常工作

--

一个月后,我不得不再次执行
RAILS\u ENV=production RAILS tmp:clear
,以避免出现错误。因此它没有得到解决,但现在,我知道,与清除tmp相比,问题暂时消失了

--

没有与delete_匹配的解决方案,即使强制转换为UTF_8(
text.encode!(编码::UTF_8,{无效::替换,替换:“”)

已解决使用
delete
方法清除缓存未
delete\u匹配

Rails.cache.delete_matched(/Translation\/4\/.*/)
reg_exp=/Translation\/#{company_id}\/.*/
Rails.cache.delete_matched(reg_exp)
Rails.cache.delete_matched(/Translation\/#{company_id}\/.+/)
rails tmp:clear