Получение этой ошибки для прекомпиляции активов: TypeError: не удалось переварить ActiveSupport:: StringInquirer

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

    TypeError: couldn't digest ActiveSupport::StringInquirer

    /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/digest_utils.rb:83:in `digest'
    /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:55:in `block in load'
    /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:312:in `block in fetch_asset_from_dependency_cache'
    org/jruby/RubyArray.java:1560:in `each'
    org/jruby/RubyEnumerable.java:1016:in `each_with_index'
   /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:308:in `fetch_asset_from_dependency_cache'
   /Users/Lucia/jruby/lib/ruby/gems/shared/gems/sprockets-3.5.2/lib/sprockets/loader.rb:44:in `load'

...

Я попытался отключить переваривание в процессе разработки и попытался запустить задачу rake с флагом RAILS_ENV, указывающим на разработку, но без результатов.

Я пробовал искать эту проблему в google и, похоже, не нашел ничего подходящего.

Я запускаю jRuby 9.0.5.0 и rails 4.2.5.2.

Ответы

Ответ 1

Попробуйте выполнить следующие команды:

RAILS_ENV=test bundle exec rake assets:clean
RAILS_ENV=test bundle exec rake tmp:cache:clear
RAILS_ENV=test bundle exec rake assets:precompile

Ответ 2

Для среды разработки просто удалите tmp/cache/assets/ путь

$ rm -rf tmp/cache/assets/

Ответ 3

У меня была такая же проблема в моей производственной среде. Я заметил, что мои коллеги забыли добавить public/assets в проект. Добавив это и совершив, моя проблема решена. Если вы разрабатываете свое приложение, проверьте, существуют ли ваши активы.