Какая драгоценность ломает 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
.
Наслаждайтесь:)