2010-09-04 36 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