我在geokit gem中添加了一些缓存功能,并使用gemcutter创建了一个'badnaam-geokit'副本。唯一改变的是Geocoders.rb,如果我只是在本地修改它,它可以正常工作。
然而,在我将它发布到rubygems并安装它并在我的environment.rb(config.gem“badnaam-geokit”)文件中将其命名为'badnaam-geokit'后,我感到很讨厌。
有什么想法吗?
这是我在github上的fork
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'
答案 0 :(得分:1)
虽然您的gem已更改名称,但库名称未更改。你的config.gem
行告诉Rails加载gem然后require 'badnaam-geokit'
,但你的gem中没有该名称的文件。
要解决此问题,请使用:lib
选项config.gem
:
config.gem 'badnaam-geokit', :lib => 'geokit'
此外,不鼓励将宝石推送到Rubygems进行这样的更改。我建议你将你的Rails项目切换到use Bundler(works great with Rails 2.3.5),然后使用:git
选项直接从你的Github fork加载gem。
答案 1 :(得分:-1)
我使用了:lib选项。
这就是有效的方法
config.gem“badnaam-geokit”,:lib => “geokit”