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'
4

2 に答える 2

1

宝石の名前は変更されていますが、ライブラリの名前は変更されていません。あなたのconfig.gem行はRailsにgemをロードするように指示してrequire 'badnaam-geokit'いますが、その名前のファイルはgemにありません。

これを修正するには、次の:libオプションを使用しconfig.gemます。

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

さらに、このような変更のためにgemをRubygemsにプッシュすることは推奨されていません。代わりに、RailsプロジェクトをBundlerRails 2.3.5でうまく機能:gitする)を使用するように切り替えてから、Githubフォークから直接gemをロードするオプションを使用することをお勧めします。

于 2010-09-04T17:22:59.943 に答える
-1

:libオプションを使用しました。

だからこれがうまくいった

config.gem "badnaam-geokit"、:lib => "geokit"

于 2010-09-04T17:29:21.877 に答える