哪个gem打破了Rails application.css.scss错误的参数3为2

好的。 这是由gem更新引起的新问题。 调用捆绑包更新会破坏我的rails应用程序。 以下是改变的gem:

# Gemfile.lock - compass (0.12.7) + compass (0.12.2) - sass (~> 3.2.19) + sass (~> 3.1) - country_select (2.0.1) # Not likely this + country_select (2.1.0) # Not likely this - devise (3.3.0) + devise (3.4.0) + responders - excon (0.39.6) - execjs (2.2.1) + excon (0.40.0) + execjs (2.2.2) - jbuilder (2.1.3) + jbuilder (2.2.2) - jquery-ui-rails (5.0.0) + jquery-ui-rails (5.0.1) - mime-types (2.3) + mime-types (2.4.2) - netrc (0.7.7) + netrc (0.8.0) - omniauth-twitter (1.0.1) # Not likely this + omniauth-twitter (1.1.0) # Not likely this - railroady (1.1.2) # Not likely this + railroady (1.2.0) # Not likely this - rails_12factor (0.0.2) + rails_12factor (0.0.3) - rails_layout (1.0.22) + rails_layout (1.0.23) - sass (3.2.19) + sass (3.2.0) - sprockets-rails (2.1.4) + sprockets-rails (2.2.0) - sprockets (~> 2.8) + sprockets (>= 2.8, < 4.0) - turbolinks (2.3.0) + turbolinks (2.4.0) - twilio-ruby (3.13.0) # Not likely this + twilio-ruby (3.13.1) # Not likely this 

我得到的错误是:

 wrong number of arguments (3 for 2) (in /app/assets/stylesheets/application.css.scss) 

更好的错误表明它发生在这一行:

  true %> 

如果您可以告诉我哪个gem负责该错误,我可以在我的Gemfile中对新版本进行版本控制。 它在我的本地机器和Heroku上做同样的事情。 我现在正在维护旧的Gemfile.lock


为了记录我尝试单独安装每个gem。 之后我在本地机器上没有问题,但Heroku失败了同样的错误,不会构建。


按照保罗里希特的提示,它是罗盘,链轮或萨斯

 sass-rails (4.0.3) lib/sass/rails/importer.rb:80:in `engine_from_path' sass-rails (4.0.3) lib/sass/rails/importer.rb:27:in `find_relative' sass (3.2.0) lib/sass/tree/import_node.rb:45:in `import' sass (3.2.0) lib/sass/tree/import_node.rb:25:in `imported_file' sass (3.2.0) lib/sass/tree/import_node.rb:34:in `css_import?' sass (3.2.0) lib/sass/tree/visitors/perform.rb:214:in `visit_import' sass (3.2.0) lib/sass/tree/visitors/base.rb:37:in `visit' sass (3.2.0) lib/sass/tree/visitors/perform.rb:97:in `visit' sass (3.2.0) lib/sass/tree/visitors/base.rb:53:in `block in visit_children' sass (3.2.0) lib/sass/tree/visitors/base.rb:53:in `visit_children' sass (3.2.0) lib/sass/tree/visitors/perform.rb:106:in `block in visit_children' sass (3.2.0) lib/sass/tree/visitors/perform.rb:118:in `with_environment' sass (3.2.0) lib/sass/tree/visitors/perform.rb:105:in `visit_children' sass (3.2.0) lib/sass/tree/visitors/base.rb:37:in `block in visit' sass (3.2.0) lib/sass/tree/visitors/perform.rb:125:in `visit_root' sass (3.2.0) lib/sass/tree/visitors/base.rb:37:in `visit' sass (3.2.0) lib/sass/tree/visitors/perform.rb:97:in `visit' sass (3.2.0) lib/sass/tree/visitors/perform.rb:7:in `visit' sass (3.2.0) lib/sass/tree/root_node.rb:20:in `render' sass (3.2.0) lib/sass/engine.rb:315:in `_render' sass (3.2.0) lib/sass/engine.rb:262:in `render' compass-rails (2.0.0) lib/compass-rails/patches/sass_importer.rb:29:in `evaluate' tilt (1.4.1) lib/tilt/template.rb:103:in `render' sprockets (2.11.0) lib/sprockets/context.rb:197:in `block in evaluate' sprockets (2.11.0) lib/sprockets/context.rb:194:in `evaluate' sprockets (2.11.0) lib/sprockets/processed_asset.rb:12:in `initialize' sprockets (2.11.0) lib/sprockets/base.rb:374:in `block in build_asset' sprockets (2.11.0) lib/sprockets/base.rb:395:in `circular_call_protection' sprockets (2.11.0) lib/sprockets/base.rb:373:in `build_asset' sprockets (2.11.0) lib/sprockets/index.rb:94:in `block in build_asset' sprockets (2.11.0) lib/sprockets/caching.rb:58:in `cache_asset' sprockets (2.11.0) lib/sprockets/index.rb:93:in `build_asset' sprockets (2.11.0) lib/sprockets/base.rb:287:in `find_asset' sprockets (2.11.0) lib/sprockets/index.rb:61:in `find_asset' sprockets (2.11.0) lib/sprockets/bundled_asset.rb:16:in `initialize' sprockets (2.11.0) lib/sprockets/base.rb:377:in `build_asset' sprockets (2.11.0) lib/sprockets/index.rb:94:in `block in build_asset' sprockets (2.11.0) lib/sprockets/caching.rb:58:in `cache_asset' sprockets (2.11.0) lib/sprockets/index.rb:93:in `build_asset' sprockets (2.11.0) lib/sprockets/base.rb:287:in `find_asset' sprockets (2.11.0) lib/sprockets/index.rb:61:in `find_asset' sprockets (2.11.0) lib/sprockets/environment.rb:75:in `find_asset' sprockets (2.11.0) lib/sprockets/base.rb:295:in `[]' sprockets-rails (2.2.0) lib/sprockets/rails/helper.rb:230:in `lookup_asset_for_path' sprockets-rails (2.2.0) lib/sprockets/rails/helper.rb:190:in `check_errors_for' sprockets-rails (2.2.0) lib/sprockets/rails/helper.rb:159:in `block in stylesheet_link_tag' sprockets-rails (2.2.0) lib/sprockets/rails/helper.rb:158:in `stylesheet_link_tag' 

问题在于sass 。 这是官方问题的链接。

锁定sass-rails到版本4.0.3已经在rails-4.0.x上通过rails-4.1.x工作了。 在你的Gemfile中:

 gem 'sass-rails', '4.0.3' 

UPDATE

我发现一个更好的解决方案是使用4-0-stable分支:

 gem 'sass-rails', github: 'rails/sass-rails', branch: '4-0-stable' 

bundle update sass做了伎俩。

我相信这实际上是sass和指南针依赖的问题。 我在Rails 4.1.5中遇到了同样的问题。 默认的Gemfile包括:

 gem 'sass-rails', '~> 4.0.3' 

但是上个月(2014年10月/ 11月)的简单捆绑更新打破了应用程序。 我能够通过在我的Gemfile中添加以下行来修复它,以保留指南针和sass之间的依赖关系:

 gem 'sass', '~> 3.2.19' gem 'compass', '~> 0.12.7' gem 'compass-rails', '~> 2.0.0' 

2014年12月更新:

在尝试升级到Zurb Foundation 5.5之后,我又遇到了同样的问题。 似乎主要的罪魁祸首是指南针轨道gem。 即使在我拿出gem之后,我发现我正在使用的另一种gem(选择轨道)将它拉回来。在摆脱了所有的sass和指南针线(以及选择的导轨)后,以下对我有用:

 gem 'sass-rails', '~> 5.0.0' gem 'foundation-rails', '~> 5.5' 

我修复了这个问题:

 gem 'sass-rails', '~> 4.0.2' gem 'sass', '3.2.19' gem 'sprockets', '2.11.0' gem 'sprockets-rails', '2.0.1' gem 'compass-rails', '~> 2.0' 

为了解决这个问题,我使用罗盘轨道移除了Gem。

在我的情况下,我使用选择轨道,用select2替换它,现在所有工作正常’rails’,’4.2.0’和’sass-rails’,’〜> 5.0.0′

我发现更新的gems,在其指令中将application.css更改为application.css.scss ,并不仅仅将‘application’识别为stylesheet_link_tagscss文件的参数。 你需要改变:

 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 

对此:

 <%= stylesheet_link_tag 'application.css.scss', media: 'all', 'data-turbolinks-track' => true %> 

这将允许您使用最新的gem。

从我的gemfile中删除罗盘(记得bundle install ),然后使用新的链轮beta为我修复它。

gem "sprockets", "~>3.0.0.beta" 。 然后bundle update sprockets

请享用 :)