active_adminのassets precompileがこけた
production環境でprecompileしようとしてこけた。
bundle exec rake assets:precompile RAILS_ENV=production rake aborted! NoMethodError: undefined method `environment' for nil:NilClass (in /home/m__z/public_html/railsapp/spree/app/assets/stylesheets/active_admin.css.scss) /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-rails-4.0.1/lib/sass/rails/importer.rb:84:in `evaluate' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-rails-4.0.1/lib/sass/rails/importer.rb:70:in `engine_from_path' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-rails-4.0.1/lib/sass/rails/importer.rb:35:in `find' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/import_node.rb:54:in `block in import' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/import_node.rb:53:in `each' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/import_node.rb:53:in `import' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/import_node.rb:28:in `imported_file' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/import_node.rb:37:in `css_import?' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/perform.rb:217:in `visit_import' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/base.rb:37:in `visit' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/perform.rb:100:in `visit' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/base.rb:53:in `block in visit_children' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/base.rb:53:in `map' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/base.rb:53:in `visit_children' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/perform.rb:109:in `block in visit_children' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/perform.rb:121:in `with_environment' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/perform.rb:108:in `visit_children' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/base.rb:37:in `block in visit' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/perform.rb:128:in `visit_root' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/base.rb:37:in `visit' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/perform.rb:100:in `visit' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/visitors/perform.rb:7:in `visit' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/tree/root_node.rb:20:in `render' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/engine.rb:315:in `_render' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sass-3.2.14/lib/sass/engine.rb:262:in `render' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/sass_template.rb:53:in `evaluate' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/context.rb:197:in `block in evaluate' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/context.rb:194:in `each' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/context.rb:194:in `evaluate' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/processed_asset.rb:12:in `initialize' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/base.rb:374:in `new' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/base.rb:374:in `block in build_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/base.rb:395:in `circular_call_protection' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/base.rb:373:in `build_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/index.rb:94:in `block in build_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/caching.rb:58:in `cache_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/index.rb:93:in `build_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/base.rb:287:in `find_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/index.rb:61:in `find_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/bundled_asset.rb:16:in `initialize' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/base.rb:377:in `new' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/base.rb:377:in `build_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/index.rb:94:in `block in build_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/caching.rb:58:in `cache_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/index.rb:93:in `build_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/base.rb:287:in `find_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/index.rb:61:in `find_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/manifest.rb:211:in `block in find_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/manifest.rb:257:in `benchmark' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/manifest.rb:210:in `find_asset' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/manifest.rb:119:in `block in compile' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/manifest.rb:118:in `each' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/sprockets/manifest.rb:118:in `compile' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-rails-2.0.1/lib/sprockets/rails/task.rb:60:in `block (3 levels) in define' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-2.12.1/lib/rake/sprocketstask.rb:146:in `with_logger' /home/m__z/public_html/railsapp/spree/vendor/bundle/ruby/1.9.1/gems/sprockets-rails-2.0.1/lib/sprockets/rails/task.rb:59:in `block (2 levels) in define' Tasks: TOP => assets:precompile (See full trace by running task with --trace)
ためしにActiveAdminのcssとjsを削除するとSpreeのcssとjsで発生した。
結論として、ActiveAdminのせいではなく、sass-railsのバージョンを上げることで直った。
gem 'sass-rails', '~> 4.0.0'
これを以下に修正
gem 'sass-rails', '4.0.2'
参考リンク | undefined method `environment' for nil:NilClass #3005
https://github.com/gregbell/active_admin/issues/3005