Ошибка кэширования Rails (jruby) (не удается вывести хэш с процедурой по умолчанию) при кэшировании ресурсов

Ruby version: jruby-1.6.8
Rails version 3.2.6
Server: trinidad

У меня возникает ошибка в моем журнале в производственном режиме, когда ресурс (изображение, CSS или JS) обслуживается там, где он не кэшируется (т. Е. Когда он находится в кэше браузера, приложение отправляет 304, а ошибка не возникает),

Это не происходит, когда я запускаю приложение под WEBrick вместо Тринидад.

Ошибка также возникает в режиме разработки, когда я устанавливаю:

config.action_controller.perform_caching = true

Ошибка, которая появляется в журнале, выглядит следующим образом:

Started GET "/assets/pokervane_128-ade771fc66f43a240b500e874c6de23b.png" for 127.0.0.1        at Fri Sep 28 08:41:19 -0400 2012
2012-09-28 08:41:19 -0400 INFO: Served asset /pokervane_128-ade771fc66f43a240b500e874c6de23b.png - 200 OK (0ms)
2012-09-28 08:41:19 -0400 INFO: cache error: can't dump hash with default proc
org/jruby/RubyMarshal.java:101:in `dump'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/actionpack-3.2.6/lib/action_dispatch/http/rack_cache.rb:25:in `write'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/metastore.rb:83:in `store'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:267:in `store'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:259:in `fetch'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:185:in `lookup'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in `call!'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/railties-3.2.6/lib/rails/engine.rb:479:in `call'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/railties-3.2.6/lib/rails/application.rb:220:in `call'
file:/Users/mark/.rvm/gems/jruby-1.6.8/gems/jruby-rack-1.1.10/lib/jruby-rack-1.1.10.jar!/rack/handler/servlet.rb:22:in `call'

Мое приложение не использует активную запись (я использовал --skip-active-record при создании). Чтобы исключить этот факт, я сделал копию своего приложения и добавил обратно:

require active_record/railtie

в application.rb, и создал базу данных. Это не избавило от ошибки.

У кого-нибудь есть предложения о том, что я могу сделать, чтобы избавиться от этой ошибки (кроме выключения кеширования, конечно).

0 ответов

Другие вопросы по тегам