2010-09-06 9 views
3

Je suis très nouveau à Rails, alors s'il vous plaît pardonnez mon manque de compréhension. Je l'ai installé les dernières versions de RubyGems, Ruby, Rails, Râteau, et MySQL etc via RubyGems, mais je dois ce problème quand on commence à faire une application Rails de base:Problème avec Ruby on Rails avec Rake

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 

Je ne sais pas ce que je faisais mauvais, et je suis si nouveau à cela que je ne sais pas que je pourrais le déboguer si j'ai passé toute ma vie à y travailler - des idées/conseils?

Toute aide est appréciée et merci d'avance!

Répondre

2

Je recommande de commencer par Rails 2.3.8 si c'est votre première expérience. Il existe de nombreux tutoriels et un soutien plus large; 3.0 est assez frais avec plusieurs changements majeurs. Vous serez en mesure de passer de la version 2.3.8 à la version 3.0.0 de toute façon.

+0

Comment puis-je procéder à la rétrogradation, alors? –

+0

Il semble que j'ai les rails 2.3.8 installés ainsi que 3.0.0? Quand je lance 'gem list', j'obtiens' rails (3.0.0, 2.3.8) 'comme l'une des lignes. Cela signifie-t-il que je peux sélectionner la version de rails que je veux activer? –

+0

'rails _2.3.8_ personnes' – BenB

2

Bundler est le nouveau système de gestion des dépendances pour les applications Ruby, utilisé dans les nouveaux projets 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

J'ai essayé cela, j'ai obtenu la sortie suivante: http://pastebin.com/9qxBdFVP –

+0

Collez également le contenu de 'Gemfile'. – yfeldblum

+0

Gemfile: http://pastebin.com/jGYG37yR –

0

J'ai eu la même erreur:

rake aborted! 
uninitialized constant Bundler 

Il se trouve qu'il se passait parce que l'environnement en cours d'exécution de la tâche cron est pas mis en place comme votre env est dans une coquille. Les fichiers .profile et .bash_profile ne sont pas exécutés avant les tâches cron. Je fixe en réglant la variable PATH dans crontab à ce qu'il est pour l'utilisateur deploy:

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 

Vous pouvez vérifier si c'est ce qui cause votre problème en exécutant

which ruby 

à l'intérieur de la coquille et de l'intérieur d'une tâche cron. Si vous obtenez des résultats différents, il vous indique que la tâche cron n'exécute pas le même rubis que dans le shell et que la tâche ruby ​​que la tâche cron exécute n'a pas la gemme Bundler installée.