Вопрос по ruby-on-rails – ошибка в вашем Gemfile, и Bundler не может продолжить

17

Я просто настроил свой 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>
Какую версию рубина вы используете? caulfield
спасибо, что я новичок в этом SilverNightaFall

Ваш Ответ

5   ответов
23

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

Спасибо, мне было интересно, почему SilverNightaFall
Убедитесь, чтоbundle исполняемого файла @ нет системного ruby (который равен 1.8) в shebang. Делатьcat $(which bundle) Проверять. Это случилось со мной, когда я установил пакет с помощью системного ruby, а затем установил его через RVM в ruby 1.9. Zubin
@ XP84 что вы, ребята, подразумеваете под "системным рубином"? сколько там видов рубина? abbood
У меня была та же проблема, что и у Зубина, на этой коробке кто-то несколько раз устанавливал компоновщик в разных наборах гемов, используя системный рубин. Мне пришлось удалить его из набора гемов, который я использовал, переключиться на глобальный набор гемов и снова удалить его, а затем после запуска «bundler» выдает сообщение «bundler is not install», снова переключиться на нужный набор гемов и установить gem install bundler , надеюсь, это пригодится кому-то в будущем. XP84
@ abbood, если вы находитесь на другом рубине, просто установите пакет заново для этого рубина, чтобы решить эту проблему. Если вы используете rbenv, это просто означаетgem install bundler && rbenv rehash. Если вы используете RVM, вы, вероятно, используете наборы гемов, и установка его для этого набора должна помочь. Если это не поможет, лучше напишите новый вопрос. deviousdodo
15

gem update bundler починил это

Как ни странно, это решило это для меня. Dirk Geurs
Работал для меня !! Manuel Meurer
0

но комментирование самоцветов капистрано в Gemfile сработало.

1

ботало для меня:

Проверьте, какую версию 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 удовлетворены

0

rvm current.

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

Похожие вопросы