Trouble with Ruby on Rails with Rake

可紊 提交于 2019-12-21 19:52:20

问题


I'm very new to Rails, so please forgive my lack of understanding. I've installed the latest versions of RubyGems, Ruby, Rails, Rake, and MySQL etc via RubyGems, but I have this problem when starting to make a basic Rails app:

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

I have no idea what I did wrong, and I'm so new to this that I don't know that I could debug it if I spent my whole life working on it -- any ideas / guidance?

All help is appreciated and thanks in advance!


回答1:


I would recommend starting with Rails 2.3.8 if this is your first experience. There are many tutorials and wider support; 3.0 is fairly fresh with several major changes. You'll be able to upgrade from 2.3.8 to 3.0.0 eventually anyway.




回答2:


Bundler is the new dependencies management system for Ruby apps, and is used in new Rails projects.

# 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



回答3:


I had the same error:

rake aborted!
uninitialized constant Bundler

It turns out it was happening because the environment running the cron task is not set up like your env is inside a shell. The .profile and .bash_profile are not run before cron tasks. I fixed this by setting the PATH variable in crontab to what it is for the deploy user:

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

You can check if this is what's causing your issue by running

which ruby

from inside the shell and from inside a cron task. If you get different results it tells you the cron task is not running the same ruby as you do in the shell and that the ruby the cron task is running does not have the Bundler gem installed.



来源:https://stackoverflow.com/questions/3654921/trouble-with-ruby-on-rails-with-rake

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!