错误的错误:未定义的方法`有?’ 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分支以支持实际发布。