5

次のように入力しました。

gem install omniauth

私のenvironment.rbファイルには、次のものもあります。

config.gem "omniauth"

ただし、次のエラーが発生します。

no such file to load -- omniauth/core
Missing these required gems:
  omniauth

私は混乱しています: rake gems:install を実行しましたが、エラーは発生しません (メッセージも返されません)。しかし、スクリプト/サーバーを実行しようとすると、rake gems:install を実行する必要があると表示されます。

environment.rb から config.gem "omniauth" を削除すると、次のようになります。

c:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:443:in `load_missing_constant': unin
itialized constant OmniAuth (NameError)
4

5 に答える 5

3

Rails 3 がバンドラーを使用するようになったので、アプリ内の特定の gem にアクセスしたいことを明示する必要があります。これを行うには、Gemfile(プロジェクトのルート ディレクトリにある) 次の行を追加します。

gem 'omniauth'

次にbundle install、プロジェクト ディレクトリで実行すると、準備完了です。bundle installすべての gem と依存関係が現在のシステムにインストールされていることを確認するだけです。幸運を!

于 2010-12-03T01:30:25.857 に答える
1

変。私自身はoauthに慣れていませんが、確認できる2つのことを確認してください。

まず、試すことができます

rake gems:install

アプリのルートで。すべての依存関係が適切にインストールされている場合、何も報告されないはずです。

次に、コンソールに移動して次のように入力します

require 'omniauth'

require 'omniauth/core'

モジュールはロードされますか?コンソールから使用できますか?サーバーの起動時にモジュールまたは依存関係の読み込みエラーが表示されない場合がありますが、コンソールには表示されます。

于 2010-12-05T21:58:15.580 に答える
1

提案:

「gem list」を実行して、そこに omniauth がリストされているかどうかを確認します。「gem env」を実行して、gem がインストールされている場所と、それらの場所が gem パスの一部であるかどうかを確認します。

申し訳ありませんが、今はこれ以上お役に立てません..

于 2010-12-04T21:48:41.703 に答える
1

私も同じ問題を抱えていました。それはRubygemsの問題だったと思います。
私がしなければならなかったのは、rvmの使用に切り替えることだけです。
Rubygems の適切なバージョンを含む複数の Ruby バージョンを管理します。
必要な Ruby バージョンをソースからダウンロードしてビルドするため、必要なすべての依存関係を最初にインストールしてください。
それは私にとって問題を解決しました。

于 2011-01-03T20:06:33.777 に答える
0

Rails2.3でも同じ問題が発生しました。バンドラーを使用してそれを解決しました。

于 2011-08-22T12:13:15.323 に答える