Tim*_*Tim 0 memcached caching ruby-on-rails ruby-on-rails-3
我遇到了memcached的问题.
我在这里使用Gregg Pollack的例子http://railslab.newrelic.com/2009/02/19/episode-8-memcached
post.rb
def self.recent
Rails.cache.fetch('recent_posts', :expires_in => 15.minutes) do
self.order('id DESC').limit(15)
end
end
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我调用它@posts = Post.recent并将其写入缓存.如果我重新加载页面,我会收到错误TypeError: can't modify frozen object.
我在控制台中尝试了同样的事情,我得到了同样的错误.第一次执行时@posts = Post.recent,密钥recent_posts被添加到缓存中.当我第二次执行相同的命令时,我得到了冻结的错误.
我正在使用Rails 3.0.1并在开发模式下工作.
我在这里做错了吗?
谢谢!
蒂姆
您正在缓存排序选项,而不是任何实际结果.当您执行查询时,Rails会修改您的查询选项,这是行不通的,因为从缓存中的东西被认为是不可变的.
试试这个:
def self.recent
Rails.cache.fetch('recent_posts', :expires_in => 15.minutes) do
self.order("id DESC").limit(15).all
end
end
Run Code Online (Sandbox Code Playgroud)
现在,您将存储一系列帖子,以后可以使用.