2010-12-03 49 views
5

我輸入以下內容:我在軌道中添加了寶石,但它仍然說缺少寶石?

gem install omniauth 

在我environment.rb文件,我也有:

config.gem "omniauth" 

不過,我得到這些錯誤:

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

我很困惑:我做一個耙寶石:安裝並不會得到一個錯誤(我也沒有收到消息)。但後來我嘗試運行腳本/服務器,它說我需要做耙寶石:安裝!

當我刪除的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) 

回答

3

現在Rails 3中使用捆綁,你需要使它明確要一個訪問特定的寶石在你的應用程序。要做到這一點,進入你的Gemfile(在項目的根目錄)中加入這一行:

gem 'omniauth' 

然後在項目目錄中運行bundle install,你應該是好去。 bundle install只是確保所有的寶石和依賴項都安裝在當前系統上。祝你好運!

+0

嗨,我仍然在2.3.x - 太難以遷移到3 .....有什麼建議嗎? – Angela 2010-12-04 07:44:34

+0

這並不是真正正確的答案,但很接近:我在我的Rails 2.3.x應用程序中安裝了bundler,而且這似乎更好。 – Angela 2010-12-16 01:05:28

1

意見建議:

做「寶石列表」,看看是否列出omniauth。 做「gem env」並查看寶石的安裝位置以及這些位置是否爲寶石路徑的一部分。

對不起,現在沒有更多的幫助..

1

奇怪。不familliar使用OAuth自己,但兩件事情你可以檢查:

首先,你可以在你的應用程序根嘗試

rake gems:install 

。如果所有依賴關係都已正確安裝,則不應報告任何內容。

其次,你可以進入控制檯,然後輸入

require 'omniauth' 

require 'omniauth/core' 

是否模塊加載?你能從控制檯使用它嗎?有時加載模塊或依賴項的錯誤在您啓動服務器時不顯示,但它們確實顯示在控制檯中。

1

我有同樣的問題。我懷疑這是一個Rubygems問題。
我所要做的就是切換到使用rvm
它管理多個ruby版本,包括它們適當版本的Rubygems。
它從源代碼下載並構建所需的ruby版本,因此請確保首先安裝所需的所有依賴項。
這解決了我的問題。

0

我對Rails 2.3有同樣的問題。用bundler解決了。