使用Rails.cache.write设置原始值

问题描述 投票:4回答:2

我正在尝试将整个response.body保存到memcached。我正在这样做:

Rails.cache.write(request.headers['HTTP_X_MEMCACHED_KEY'], response.body)

问题是它为该值添加了一些垃圾:

o: ActiveSupport::Cache::Entry  :@compressedF:@expires_in0:@created_atf1355928410.584484:@value"GsI";s<!DOCTYPE html>...

我试图将:raw => true传递给Rails.cache.write,但它返回false,并且不会将值放入memcached。我认为它失败是因为response.body无法正确转义。

我也尝试过这种方式:

Rails.cache.write(request.headers['HTTP_X_MEMCACHED_KEY'], Marshal.dump(response.body), :raw => true)

它可以工作,但是值中仍然有一些垃圾:

I"fD<!DOCTYPE html>...

如何将干净的值放入memcached?

ruby-on-rails ruby caching memcached
2个回答
1
投票
现在我将response.body.bytes.to_a.map(&:chr).join作为值传递,它可以正常工作,但是我仍然想知道这是否是最佳解决方案。

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.