我玩弄了Rails 3 Rails.cache功能,當我寫一個ActiveRecord進入高速緩存,我不能讀回,更改屬性,然後寫入數據庫。我得到一個「TypeError:無法修改冷凍哈希」。我曾經使用過另一個memcache插件,但我試圖切換到Heroku,並且令人難以置信的是,我無法保存我投入Memcache的ActiveRecord條目。這將導致大量不必要的DB讀取來改變小部分信息。的Rails 3.0.3 Rails.cache.read無法寫入DB
例如,我可能會在數據庫中執行此操作。假定用戶模型:
用戶 - >登錄:串並鍵入以下內容軌Ç
user = User.new
user.login = 'test'
user.save
Rails.cache.write('user:login:test', user)
user2 = Rails.cache.read('user:login:test')
user2.login = 'test2'
TypeError: can't modify frozen hash
/app/.bundle/gems/ruby/1.8/gems/activerecord-3.0.3/lib/active_record/attribute_methods/write.rb:26:in `[]='
/app/.bundle/gems/ruby/1.8/gems/activerecord-3.0.3/lib/active_record/attribute_methods/write.rb:26:in `write_attribute'
/app/.bundle/gems/ruby/1.8/gems/activerecord-3.0.3/lib/active_record/attribute_methods/dirty.rb:61:in `write_attribute'
/app/.bundle/gems/ruby/1.8/gems/activerecord-3.0.3/lib/active_record/attribute_methods/write.rb:13:in `login='
有誰知道如何解決這個問題?
您是否嘗試過3.0.6以查看您是否仍然遇到此問題? – 2011-04-12 04:15:54