Вопрос по ruby-on-rails – ошибка в вашем Gemfile, и Bundler не может продолжить
Я просто настроил свой Mac для разработки и ранее использовал этот точный гемфайл, и он работал нормально. Я не уверен, что я делаю неправильно.
<code>Victorias-MacBook-Pro:sample_app Victoria$ bundle --without production /Users/Victoria/Sites/sample_app/Gemfile:38:in `evaluate': compile error /Users/Victoria/Sites/sample_app/Gemfile:28: syntax error, unexpected ':', expecting kEND gem 'cucumber-rails', '1.2.1', require: false ^ (SyntaxError) /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/definition.rb:18:in `build' /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler.rb:135:in `definition' /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/cli.rb:220:in `install' /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor/task.rb:22:in `send' /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor/task.rb:22:in `run' /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor.rb:263:in `dispatch' /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor/base.rb:386:in `start' /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/bin/bundle:13 /usr/bin/bundle:19:in `load' /usr/bin/bundle:19 There was an error in your Gemfile, and Bundler cannot continue. </code>
Это гемфайл
<code>source 'https://rubygems.org' gem 'rails', '3.2.3' gem 'jquery-rails', '2.0.0' gem 'bootstrap-sass', '2.0.0' gem 'bcrypt-ruby', '3.0.1' gem 'faker', '1.0.1' gem 'will_paginate', '3.0.3' gem 'bootstrap-will_paginate', '0.0.5' group :development, :test do gem 'mysql2' gem 'rspec-rails', '2.9.0' gem 'guard-rspec', '0.5.5' end # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails', '3.2.4' gem 'coffee-rails', '3.2.2' gem 'uglifier', '1.2.3' end group :test do gem 'capybara', '1.1.2' gem 'factory_girl_rails', '1.4.0' gem 'cucumber-rails', '1.2.1', require: false gem 'database_cleaner', '0.7.0' gem 'guard-spork', '0.3.2' gem 'spork', '0.9.0' # gem 'rb-fsevent', '0.4.3.1', require: false # gem 'growl', '1.0.3' end group :production do gem 'pg', '0.12.2' end </code>
Вы используете Ruby 1.8 и синтаксисattribute:
требует ruby 1.9. Вам нужно будет изменить
gem 'cucumber-rails', '1.2.1', require: false
К
gem 'cucumber-rails', '1.2.1', :require => false
Или установите Ruby 1.9 (возможно, используя RVM или rbenv) и запуститеbundle install
опять таки. Это было бы намного лучше, если бы это был новый проект.
bundle
исполняемого файла @ нет системного ruby (который равен 1.8) в shebang. Делатьcat $(which bundle)
Проверять. Это случилось со мной, когда я установил пакет с помощью системного ruby, а затем установил его через RVM в ruby 1.9.
Zubin
gem install bundler && rbenv rehash
. Если вы используете RVM, вы, вероятно, используете наборы гемов, и установка его для этого набора должна помочь. Если это не поможет, лучше напишите новый вопрос.
deviousdodo
gem update bundler
починил это
ботало для меня:
Проверьте, какую версию rails вы используете с rvm (в терминале): ruby -v (в моем случае открылся новый терминал с версией, установленной на ruby 1.8.7, ваша может не быть)
Переключитесь на правильную версию ruby (в моем случае это должна быть ruby 2.1.1, ваша может и не быть): rvm 2.1.1 (при этом для версии ruby устанавливается 2.1.1, замените ее ruby x.x.x вашего проекта)
Попробуйте повторно запустить проверку пакета: проверка пакета
Вы должны получить: зависимости Gemfile удовлетворены