"uninitialized constant Sass:: Script (NameError)"

Мне пришлось сначала изменить свой Gemfile (я удалил комментарии, чтобы сделать текст короче):

source 'https://rubygems.org'

gem 'rails', '4.2.0'
gem 'sqlite3'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc


group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
end

в

source 'https://rubygems.org'


gem 'rails',                '4.2.0'
gem 'sass-rails',           '5.0.1'
gem 'uglifier',             '2.5.3'
gem 'coffee-rails',         '4.1.0'
gem 'jquery-rails',         '4.0.3'
gem 'turbolinks',           '2.3.0'
gem 'jbuilder',             '2.2.3'
gem 'sdoc',                 '0.4.0', group: :doc

group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end

теперь, когда я пытаюсь запустить сервер rails с rails server -b $IP -p $PORT, я получаю следующее сообщение об ошибке:

/usr/local/rvm/gems/[email protected]/gems/sass-rails-5.0.1/lib/sass/rails/helpers.rb:11:in `<top (required)>': uninitialized constant Sass::Script (NameError)
    from /usr/local/rvm/gems/[email protected]/gems/sass-rails-5.0.1/lib/sass/rails.rb:8:in `require'
    from /usr/local/rvm/gems/[email protected]/gems/sass-rails-5.0.1/lib/sass/rails.rb:8:in `<top (required)>'
    from /usr/local/rvm/gems/[email protected]/gems/sass-rails-5.0.1/lib/sass-rails.rb:1:in `require'
    from /usr/local/rvm/gems/[email protected]/gems/sass-rails-5.0.1/lib/sass-rails.rb:1:in `<top (required)>'
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.7.6/lib/bundler/runtime.rb:76:in `require'
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.7.6/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.7.6/lib/bundler/runtime.rb:72:in `each'
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.7.6/lib/bundler/runtime.rb:72:in `block in require'
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.7.6/lib/bundler/runtime.rb:61:in `each'
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.7.6/lib/bundler/runtime.rb:61:in `require'
    from /usr/local/rvm/gems/[email protected]/gems/bundler-1.7.6/lib/bundler.rb:133:in `require'
    from /home/ubuntu/workspace/hello_app/config/application.rb:7:in `<top (required)>'
    from /usr/local/rvm/gems/[email protected]/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:78:in `require'
    from /usr/local/rvm/gems/[email protected]/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:78:in `block in server'
    from /usr/local/rvm/gems/[email protected]/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `tap'
    from /usr/local/rvm/gems/[email protected]/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `server'
    from /usr/local/rvm/gems/[email protected]/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /usr/local/rvm/gems/[email protected]/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>'
    from /home/ubuntu/workspace/hello_app/bin/rails:8:in `require'
    from /home/ubuntu/workspace/hello_app/bin/rails:8:in `<top (required)>'
    from /usr/local/rvm/gems/[email protected]/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `load'
    from /usr/local/rvm/gems/[email protected]/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `call'
    from /usr/local/rvm/gems/[email protected]/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
    from /usr/local/rvm/gems/[email protected]/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'
    from /usr/local/rvm/gems/[email protected]/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'
    from /usr/local/rvm/gems/[email protected]/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'
    from /usr/local/rvm/gems/[email protected]/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>'
    from /home/ubuntu/workspace/hello_app/bin/spring:13:in `require'
    from /home/ubuntu/workspace/hello_app/bin/spring:13:in `<top (required)>'
    from bin/rails:3:in `load'
    from bin/rails:3:in `<main>' 

Я попробовал запустить серверы перед изменением Gemfile, и он работает, поэтому это должно быть из-за новых изменений. Также я знаю об ошибке, которую он говорит ruby-2.1.5, и в моем Gemfile я поставил 4.2.0, но я не знаю, как это изменить, или если это даже проблема? я попытался добавить ruby '2.1.5' в исходную строку, ничего не изменилось. Также я изменил 'rails', '4.2.0' на 2.1.5, но потом обновление не сообщило мне Could not find gem 'rails (= 2.1.5) ruby' in the gems available on this machine.

Ответ 1

Как сказано здесь:

https://github.com/josh/sprockets-es6/issues/15

Используйте sass-rails v 5.0.2+. Это должно решить вашу проблему. Поэтому в файле gem изменить:

gem 'sass-rails', '5.0.3'

или

gem 'sass-rails', '5.0.2'

Update:

Поскольку ссылка теперь отключена, эта проблема на самом деле связана с версией gem версии 5.0.1, поэтому просто запустите:

bundle update sass-rails

который в конечном итоге обновит вас до saas-rails gem до последнего. Или вы можете ввести версию в свой gemfile, как указано выше.

Ответ 2

bundle update sass-rails помогло при обновлении до Rails 4.2.2.