Какая драгоценность ломает Rails application.css.scss неверное количество аргументов 3 для 2

Хорошо. Это новая проблема, вызванная обновлением gem. Обновление пакета звонков ломает мое приложение rails. Вот измененные драгоценные камни:

# 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)

И лучшие ошибки показывают, что это происходит в этой строке:

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

Если вы можете сказать мне, какой жемчуг несет ответственность за ошибку, я могу выпустить новую версию в своем Gemfile. Он делает то же самое на моей локальной машине и Heroku. Я поддерживаю более старый Gemfile.lock.


Для записи я попытался установить каждый камень отдельно. Впоследствии у меня не было проблем на локальной машине, но 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'

Ответ 1

Я обнаружил, что обновленные драгоценные камни, которые в своих инструкциях могут изменить application.css на application.css.scss, не распознают только 'application' в качестве параметра для файла scss для stylesheet_link_tag. Вам нужно изменить:

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

:

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

Это позволит вам работать с последними драгоценными камнями.

Ответ 2

Проблема заключается в sass. Здесь ссылка на официальную версию .

Блокировка sass-rails до версии 4.0.3 работала для меня на rails-4.0.x через rails-4.1.x. В вашем Gemfile:

gem 'sass-rails', '4.0.3'

ОБНОВЛЕНИЕ

Лучшее решение, которое я нашел, - использовать ветвь 4-0-stable:

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

Ответ 3

Я считаю, что на самом деле это проблема с зависимостями sass и compass. У меня была такая же проблема в Rails 4.1.5. Gemfile по умолчанию включает в себя:

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

Но простое обновление пакета в течение последнего месяца (октябрь/ноябрь 2014) прерывает приложение. Я смог исправить это, добавив следующие строки в мой Gemfile, чтобы сохранить зависимости между компасом и sass:

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

Обновление до 2014 года:

Я снова столкнулся с этой проблемой, пытаясь перейти на Zurb Foundation 5.5. Похоже, главным виновником является драгоценный камень компаса. Даже после того, как я вытащил драгоценный камень, я обнаружил, что другой драгоценный камень, который я использовал (выбранные рельсы), возвращал его обратно. После избавления от всех линий сасса и компаса (и выбранных рельсов) для меня работает следующее:

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

Ответ 4

bundle update sass сделал трюк.

Ответ 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'

Ответ 6

Для его решения я удаляю Gem с помощью компасных рельсов.

В моем случае я использовал выбранные рельсы, заменив его на select2, теперь все отлично работают с "рельсами", "4.2.0" и "sass-rails", "~ > 5.0.0"

Ответ 7

Удаление компаса из моего gemfile (помните bundle install), а затем использование новой бета-версии брелоков исправлено для меня.

gem "sprockets", "~>3.0.0.beta" в gemfile. Тогда bundle update sprockets.

Наслаждайтесь:)