2

新しい Rails API アプリを作成しました。postgres db のコマンドを使用して、アプリのデータベース テーブルを作成しようとしています。

rake db:create:all

そして、私はこのエラーを受け取ります:

 AM@~/Documents/RailsWS/iosprototypevendors >rake db:create:all --trace
 rake aborted!
 Valid types are [:development, :runtime], not nil
 /usr/local/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:52:in `initialize'
 /Users/AM/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler- 1.2.0/lib/bundler/resolver.rb:371:in `new'
 /Users/AM/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-     1.2.0/lib/bundler/resolver.rb:371:in `search'
 /Users/AM/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-
   ..............

たくさんのグーグル検索で、これは間違ったバージョンのルビーがピックアップされたことに関係している可能性があることがわかりました。

(最近、OS を Mountain Lion にアップグレードしたので、Rails と Ruby のバージョンを最新のものにアップグレードする必要がありました。Rails を稼働させるのに 8 時間もかかりました。Rails は私のシステムで動作するようになりましたが、これはたった 1 つの不一致でした。 )。


加えて

また、システム上のさまざまな Rails アプリについて、rails -v を使用してバージョンを確認すると、Rails のバージョンが 3.2.1 と表示されたり、3.2.8 と表示されたり、上記のエラー メッセージが表示されることもあります。

これはどうして起こるのでしょうか?このコマンドを実行して得られるものは次のとおりです。

rvm info

ruby-1.9.3-p194:

system:
 uname:       "Darwin A-Ms-MacBook-Pro.local 12.1.0 Darwin Kernel Version 12.1.0: Tue Aug 14 13:29:55 PDT 2012; root:xnu-2050.9.2~1/RELEASE_X86_64 x86_64"
 bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)"
 zsh:         "/bin/zsh => zsh 4.3.11 (i386-apple-darwin12.0)"

 rvm:
  version:      "rvm 1.15.8 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
  updated:      "1 day 22 hours 15 minutes 59 seconds ago"

 ruby:
  interpreter:  "ruby"
  version:      "1.9.3p194"
  date:         "2012-04-20"
  platform:     "x86_64-darwin12.1.0"
  patchlevel:   "2012-04-20 revision 35410"
  full_version: "ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.1.0]"

 homes:
  gem:          "/Users/AM/.rvm/gems/ruby-1.9.3-p194"
  ruby:         "/Users/AM/.rvm/rubies/ruby-1.9.3-p194"

 binaries:
   ruby:         "/Users/AM/.rvm/rubies/ruby-1.9.3-p194/bin/ruby"
   irb:          "/Users/AM/.rvm/rubies/ruby-1.9.3-p194/bin/irb"
   gem:          "/Users/AM/.rvm/rubies/ruby-1.9.3-p194/bin/gem"
   rake:         "/Users/AM/.rvm/gems/ruby-1.9.3-p194@global/bin/rake"

 environment:
   PATH:         "/Users/AM/.rvm/gems/ruby-1.9.3-p194/bin:/Users/AM/.rvm/gems/ruby- 1.9.3-p194@global/bin:/Users/AM/.rvm/rubies/ruby-1.9.3-    p194/bin:/Users/AM/.rvm/bin:/Users/AM/.rbenv/shims:/Users/AM/.rbenv/bin:/usr/local/bin:/usr/   local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/PostgreSQL/9.1/bin/"
  GEM_HOME:     "/Users/AM/.rvm/gems/ruby-1.9.3-p194"
  GEM_PATH:     "/Users/AM/.rvm/gems/ruby-1.9.3-p194:/Users/AM/.rvm/gems/ruby-1.9.3-p194@global"
  MY_RUBY_HOME: "/Users/AM/.rvm/rubies/ruby-1.9.3-p194"
  IRBRC:        "/Users/AM/.rvm/rubies/ruby-1.9.3-p194/.irbrc"
  RUBYOPT:      ""
  gemset:       ""

どんな助けでも大歓迎です

編集


コマンドを実行したときに得られるものは次のとおりです

echo $PATH on my terminal



/Users/AM/.rbenv/shims:
/Users/AM/.rbenv/bin:
/usr/local/bin:/usr/local/sbin:
/usr/local/mysql/bin:
/Users/AM/.rvm/gems/ruby-1.9.3-p194/bin:
/Users/AM/.rvm/gems/ruby-1.9.3-p194@global/bin:
/Users/AM/.rvm/rubies/ruby-1.9.3-p194/bin:
/Users/AM/.rvm/bin:
/usr/local/bin:
/usr/bin:/usr/bin:
/bin:/usr/sbin:/sbin:
/usr/local/bin:
/Library/PostgreSQL/9.1/bin/

これらは私のシステム上のパスです

4

2 に答える 2

1

だから、探していた答えが得られませんでした。ですから、私自身の調査の結果、これを発見しました(case4の他の人がこの問題を抱えている場合)

Mountain Lionには、Postgresqlとネイティブのrubyバージョン1.8.7が付属しています。現在のルビー
バージョンは1.9.3です。したがって、マウンテンライオンにアップグレードしたら、レール
とルビーのバージョンもアップグレードして、正しいバージョンを実行していることを確認してください。

rvmは、マウンテンライオンのバージョン管理ツールであり、これらを更新およびダウンロードできます。こちらの投稿をご覧ください

また、アップグレードをインストールすると、コンピューターに複数のバージョンのRubyとRailsがインストールされます。そのため、システムのデフォルトとして適切なバージョンを設定することが重要になります。最初にバージョンを確認するコマンドでターミナルウィンドウを開くたびに、これを行う必要があります:rails-vおよびruby-vまたはrvmlist

次に、次のようにデフォルトバージョンを設定します。rvm--default 1.9.3-p194これにより、そのターミナルセッションのデフォルトが設定されます。プロジェクトごとにより永続的なセットアップが必要な場合は、]
すべてのプロジェクトのルートに.rvmrcファイルを作成し、そのプロジェクトで使用するバージョンを指定する必要があります。上記にリンクされている投稿をもう一度参照してください。

詳細がわかり次第、この回答を編集します。それまでの間、この回答が役に立った場合は、投票を検討してください。ありがとう

于 2012-09-07T17:40:21.543 に答える
1

既知のパスの問題です。パスに有効な gem パスが含まれているかどうかを確認してください。Rubyもインストールしませんでしrvmたか?見てみましょう:バンドラーでのパスの問題、変更するか変更しないか?

于 2012-09-06T16:33:53.260 に答える