Проблема с Ruby on Rails с граблями - PullRequest
3 голосов
/ 07 сентября 2010

Я очень новичок в Rails, поэтому, пожалуйста, прости меня за отсутствие понимания. Я установил последние версии RubyGems, Ruby, Rails, Rake, MySQL и т. Д. Через RubyGems, но у меня возникает эта проблема при создании базового приложения на Rails:

Icarus:temporary atg$ rails new people
    ... (output omitted) ...
Icarus:temporary atg$ cd people
Icarus:people atg$ rake db:create
(in /Users/atg/temporary/people)
rake aborted!
uninitialized constant Bundler
/Users/atg/temporary/people/Rakefile:4
(See full trace by running task with --trace)
Icarus:people atg$ rake db:create --trace
(in /Users/atg/temporary/people)
rake aborted!
uninitialized constant Bundler
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing'
/Users/atg/temporary/people/config/boot.rb:9
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Users/atg/temporary/people/config/application.rb:1
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
/Users/atg/temporary/people/Rakefile:4
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `load'
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile'
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile'
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in `run'
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/Users/atg/.gem/ruby/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

Понятия не имею, что я сделал неправильно, и я настолько новичок в этом, что не знаю, что смогу отладить его, если потрачу на это всю свою жизнь - какие-нибудь идеи / рекомендации?

Вся помощь приветствуется и спасибо заранее!

Ответы [ 3 ]

2 голосов
/ 07 сентября 2010

Я бы порекомендовал начать с Rails 2.3.8, если это ваш первый опыт.Есть много учебных пособий и более широкой поддержки;3.0 довольно свежий с несколькими серьезными изменениями.В любом случае вы сможете в конечном итоге перейти с 2.3.8 на 3.0.0.

2 голосов
/ 07 сентября 2010

Bundler - это новая система управления зависимостями для приложений Ruby, которая используется в новых проектах Rails.

# ask rubygems to install bundler
$ gem install bundler

# ask bundler to install your app's dependencies
$ bundle install

# run your app & tasks using bundler
$ bundle exec rake db:create
0 голосов
/ 27 февраля 2011

У меня была такая же ошибка:

rake aborted!
uninitialized constant Bundler

Оказывается, это произошло потому, что среда, в которой выполняется задача cron, не настроена так, как ваша среда находится внутри оболочки. .Profile и .bash_profile не запускаются перед задачами cron. Я исправил это, установив переменную PATH в crontab так, как это указано для пользователя развертывания:

PATH=/opt/nginx/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/Applications/sshfs/bin

Вы можете проверить, является ли это причиной вашей проблемы, запустив

which ruby

изнутри оболочки и изнутри задачи cron. Если вы получаете другие результаты, это говорит о том, что задача cron не запускает тот же ruby, что и в оболочке, и что для ruby, выполняемого задачей cron, не установлен гем Bundler.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...