2010-09-04 55 views
0

我在geokit gem中添加了一些緩存功能,並使用gemcutter創建了一個副本'badnaam-geokit'。唯一改變的是Geocoders.rb,如果我只是在本地修改它就可以正常工作。寶石定製

但是,在我將它發佈到rubygems並將其安裝並在我的environment.rb(config.gem「badnaam-geokit」)文件中將其作爲'badnaam-geokit'需要時,我得到一個令人討厭的問題。

任何想法?

下面是我在github

http://github.com/badnaam/geokit-gem

,這裏是創業板叉。 http://rubygems.org/gems/badnaam-geokit

no such file to load -- badnaam-geokit 
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' 
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in' 
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require' 
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/gem_dependency.rb:208:in `load' 
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:307:in `load_gems' 
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:307:in `each' 
/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:307:in `load_gems' 

回答

-1

我使用了:lib選項。

因此,這是什麼工作

config.gem 「badnaam-geokit」:LIB => 「geokit」

+0

爲什麼這是downvoted? – badnaam 2010-09-07 08:20:27

+0

你的回答是在@wuputah回答後發佈的,你應該刪除你的答案並接受他的回答。 – 2011-09-13 15:15:02

1

當你的寶石已經改變名稱,庫名至今未變。您的config.gem行告訴Rails加載該寶石,然後require 'badnaam-geokit',但您的寶石中沒有該名稱的文件。

的解決這個問題,使用:lib選項config.gem

config.gem 'badnaam-geokit', :lib => 'geokit' 

此外,推寶石RubyGems的像這樣的變化不鼓勵。相反,我會建議您將您的Rails項目切換爲use Bundler(其中works great with Rails 2.3.5),然後使用:git選項直接從Github分支加載gem。

+0

感謝。我會牢記這一點。你推薦的解決方案雖然會產生相同的錯誤。我放入:require選項,它似乎沒有任何影響。我是否還需要安裝常規geokit gem? – badnaam 2010-09-04 17:26:24

+0

哎呀,':require'是Bundler的選項; ':lib'是'config.gem'選項。 – wuputah 2010-09-04 19:40:27