ActionView:: Template:: Ошибка (не предварительно скомпилирована): на кедре герою

ОБНОВЛЕНИЕ:

Получается, что иногда results.image был нил или ", поэтому это нарушало приложение, потому что конвейер активов искал изображение типа" " и не нашел его. Прямо сейчас я не показываю изображение, если его нет, но мне придется добавить изображение по умолчанию для недостающих изображений... это должно быть более постоянное исправление.


У меня есть ряд вопросов о этой проблеме кедра heroku и конвейера Rails, и я пробовал ряд решений, но ни один из них не работает, и, вероятно, потому, что проблема, с которой я сталкиваюсь, морщин, которого я больше нигде не видел.

В моем приложении используется Rails 3.2.6, и я развернул его на керовом керосе Heroku. Это основное приложение для поиска, которое ищет прикрепленный postgres db через websolr, поэтому, когда вы загружаете индекс (индекС# index) без параметров [: q].present? вы получаете окно поиска, и это отлично работает. Но когда я помещал что-то в поле поиска и нажимал submit, а индекс index снова загружался, но на этот раз пытается отобразить результаты, я получаю:

app[web.1]: Completed 500 Internal Server Error in 440ms
app[web.1]: 
app[web.1]: ActionView::Template::Error ( isn't precompiled):
app[web.1]:     12:         - @results.each do |result|
app[web.1]:     13:           %li
app[web.1]:     14:             %div
app[web.1]:     15:               = image_tag result.image
app[web.1]:     16:             %div
app[web.1]:     17:               = result.title
app[web.1]:     18:             %div
app[web.1]:   app/views/index/index.html.haml:15:in `block in _app_views_index_index_html_haml___4350601325072829986_32734540'
app[web.1]:   app/views/index/index.html.haml:12:in   _app_views_index_index_html_haml___4350601325072829986_32734540'

Какая странность в отношении моего конкретного случая и других, которые я видел, это следующая строка:

ActionView::Template::Error ( isn't precompiled):

Со всеми остальными вопросами, которые я видел, в скобках есть файл css, т.е. ( "foo.css" не прекомпилирован), или в моем случае кажется, что это должно быть ( "index.css" не прекомпилирован). Но здесь это просто пусто!

Это мое развертывание развертывания, которое я пытаюсь выполнить, поэтому я попытался запустить  RAILS_ENV = промежуточные активы рейка: предварительно скомпилировать (то есть, конечно, результаты), но это не исправляет. Я даже попробовал раздеться в представлении (обратите внимание на отсутствие какого-либо реального стиля там). Ничего не работает, и я в недоумении. Любая помощь будет принята с благодарностью.

Для справки, вот мой gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.6'
gem 'pg'
gem 'haml-rails'
gem 'mongoid'
gem 'sunspot_rails', '~> 1.3.0'
gem 'sunspot_solr'


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

group :development do
  gem 'heroku_san'
  gem 'annotate'
  gem 'awesome_print'
end

group :development, :test do
  gem 'rspec-rails'
end

group :test do
  gem 'cucumber-rails', :require => false
  gem 'capybara'
  gem 'database_cleaner'
  gem 'spork'
  gem 'launchy'
end

group :staging, :production do
  gem 'thin'
end

Вот параметры конфигурации в файле config/application.rb:

config.encoding = "utf-8"
config.filter_parameters += [:password]
config.active_support.escape_html_entities_in_json = true
config.active_record.whitelist_attributes = true
config.assets.enabled = true
config.assets.version = '1.0'
config.assets.compile = true

И вот параметры конфигурации в моей среде/файл staging.rb:

config.cache_classes = true
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true
config.assets.precompile += ['index.css.scss']
config.assets.digest = true
config.i18n.fallbacks = true
config.active_support.deprecation = :notify

Ответ 1

Есть ли вероятность, что у вас есть пустой URL-адрес изображения? У вас есть что-то вроде CarrierWave?

Я вижу из вашего кода image_tag result.image служит вверх - возможно ли, что это null?

Этот поток должен решить эту проблему: ActionView:: Template:: Ошибка (не прекомпилирована):