【问题标题】:"uninitialized constant Sass::Script (NameError)"“未初始化的常量 Sass::Script (NameError)”
【发布时间】:2015-04-18 10:56:18
【问题描述】:

我必须首先更改我的 Gemfile(我删除了 cmets 以使文本更短):

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 server -b $IP -p $PORT 运行 rails 服务器时,我收到以下错误消息:

/usr/local/rvm/gems/ruby-2.1.5@rails4/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/ruby-2.1.5@rails4/gems/sass-rails-5.0.1/lib/sass/rails.rb:8:in `require'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/sass-rails-5.0.1/lib/sass/rails.rb:8:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/sass-rails-5.0.1/lib/sass-rails.rb:1:in `require'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/sass-rails-5.0.1/lib/sass-rails.rb:1:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.6/lib/bundler/runtime.rb:76:in `require'
    from /usr/local/rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.6/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from /usr/local/rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.6/lib/bundler/runtime.rb:72:in `each'
    from /usr/local/rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.6/lib/bundler/runtime.rb:72:in `block in require'
    from /usr/local/rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.6/lib/bundler/runtime.rb:61:in `each'
    from /usr/local/rvm/gems/ruby-2.1.5@global/gems/bundler-1.7.6/lib/bundler/runtime.rb:61:in `require'
    from /usr/local/rvm/gems/ruby-2.1.5@global/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/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:78:in `require'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:78:in `block in server'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `tap'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `server'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/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/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `load'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `call'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'
    from /usr/local/rvm/gems/ruby-2.1.5@rails4/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.

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案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'
    

    更新:

    由于链接现在已关闭,所以这个问题实际上与 gem 版本 5.0.1 相关,所以只需运行:

    bundle update sass-rails
    

    最终将您的saas-rails gem 更新到最新版本。或者您可以按照上面的说明在 gemfile 中输入版本。

    【讨论】:

    • 它确实有效,谢谢。这本书的作者建议使用他所做的相同设置,因为在教程中使用不同版本可能会得到不同的结果,所以我想知道是否还有其他方法? (顺便说一句sass-rails v 5.0.2+ 命令不起作用,告诉我command not found
    • 不,实际上这是 gem 中的一个错误,因此您需要使用新版本,这不会影响结果。
    • 您始终可以通过单击正确的勾号来接受您的问题的答案,因此如果任何其他用户遇到同样的问题,这也可能对他有所帮助
    • 即使在将版本制作为 5.0.4 后,我也面临这个问题。有什么帮助吗?
    • 谢谢。次要版本,但解决了所有问题。 railstutorial.org 中提到了 sass-rails 5.0.1
    【解决方案2】:

    bundle update sass-rails 在升级到 Rails 4.2.2 时帮了我大忙。

    【讨论】:

    • 我也是这样做的。现在bundle install 给了我Using sass-rails 5.0.4,但我仍然面临错误。有什么帮助吗?
    猜你喜欢
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多