Ошибка в вашем Gemfile, и Bundler не может продолжить

Я просто установил свой mac для разработки и ранее использовал этот точный gemfile, и он работал нормально. Я не уверен, что я делаю неправильно.

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.

Это gemfile

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

Ответы

Ответ 1

Вы используете 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. Это будет гораздо более выгодным вариантом, если это новый проект.

Ответ 2

Я получил ту же ошибку после обновления моей среды Ruby/Rails.

gem update bundler исправлено.

Ответ 3

У меня была аналогичная проблема при использовании rvm. Вот что сработало для меня:

Проверьте, какая версия рельсов используется с rvm (в терминале): ruby -v (в моем случае был открыт новый терминал с версией, установленной на рубин 1.8.7, твой может не быть)

Переключитесь на правильную рубиновую версию (в моем случае это должен быть рубин 2.1.1, твой может не быть): rvm 2.1.1 (это устанавливает рубиновую версию в 2.1.1, заменяет ваш проект ruby ​​x.x.x)

Попробуйте выполнить повторную проверку пакетов: проверка связи

Вы должны получить: Зависимости Gemfile удовлетворяются

Ответ 4

Вышеупомянутые ответы не сработали для меня, но прокомментировали капринановые камни в Gemfile.

Ответ 5

Если вы используете RVM, проверьте, какой gemset вы используете: rvm current.

Если он говорит, например, system, вам может потребоваться выбрать правильный гемсет (я сделал). Используйте rvm list gemsets, если вы не можете вспомнить, что он назвал, затем выберите правильный гемсет, используя rvm use [correct gemset].