错误的错误:未定义的方法`有?’ for Sass :: Util:Module

加载网页时,我收到Phusion发出的以下错误:

There was an error while trying to load the gem 'compass-rails'. Gem Load Error is: undefined method `has?' for Sass::Util:Module Did you mean? hash Hash Backtrace for gem load error is: /Volumes/Data/htdocs/zetcho/vendor/bundle/gems/compass-0.12.2/lib/compass/sass_extensions/functions/urls.rb:5:in `has?' 

指定位置的代码是:

 module Compass::SassExtensions::Functions::Urls def self.has?(base, instance_method) Sass::Util.has?(:instance_method, base, instance_method) end 

我的gem文件包含:

 # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 5.1.2' # Use mysql as the database for Active Record gem 'mysql2', '~> 0.3.18' # Use SCSS for stylesheets gem 'sass-rails', '~> 5.0' # Use Compass for stylesheets gem 'compass-rails' # Use the Compass extension susy gem "sprockets" gem 'susy' 

我刚刚使用Rails 5.1.2和ruby 2.3.1创建了Ruby on Rails站点。 我有一个更老的网站,与gem一起工作正常。 我是否错过了整体安装中的一个步骤,或者这是指南针导轨的错误?

我尝试添加控制器时遇到了同样的错误:

 rails generate controller home index 

经过更多的挖掘,我发现了类似的问题。 我通过将gem文件更改为:

 gem 'compass-rails', github: 'Compass/compass-rails' 

然后:

 rm gemfile.lock bundle 

似乎问题可以在compass-rails 2.0.0 。 版本3.0.2似乎解决了这个问题。 所以可能的解决方案是:

 # Gemfile gem 'compass-rails', '~> 3.0.2' 

然后bundle update compass-rails

这避免了指向compass-rails git master分支以支持实际发布。