0

Mac OS X 10.5.8 にGeocommons ジオコーダーをインストールして実行しようとした後に、次のエラーに遭遇した人はいますか? これは、irb を開始した時点からのターミナル ウィンドウからの正確な出力です。

$ irb
>> require 'geocoder/us'
=> true
>> db = Geocoder::US::Database.new("/opt/tiger/orangeca.db")
=> #<Geocoder::US::Database:0x57ac10 @threadsafe=false, @db=#<SQLite3::Database:0x57ab98>, @debug=false, @st={}>
>> p db.geocode("Disneyland Anaheim, CA 92802")
NoMethodError: undefined method `set_result' for #<SQLite3::Database::FunctionProxy:0x576778>
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:64:in `tune'
from /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.0/lib/sqlite3/database.rb:316:in `call'
from /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.0/lib/sqlite3/database.rb:316:in `create_function'
from /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.0/lib/sqlite3/resultset.rb:66:in `call'
from /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.0/lib/sqlite3/resultset.rb:66:in `step'
from /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.0/lib/sqlite3/resultset.rb:66:in `next'
from /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.0/lib/sqlite3/resultset.rb:97:in `each'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:138:in `execute_statement'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:46:in `synchronize'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:46:in `synchronize'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:135:in `execute_statement'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:122:in `execute'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:151:in `places_by_zip'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:339:in `find_candidates'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:654:in `geocode_address'
from /Library/Ruby/Gems/1.8/gems/Geocoder-US-2.0.0/lib/geocoder/us/database.rb:724:in `geocode'
from (irb):3>>  

ちなみに、「orangeca.db」は、カリフォルニア州オレンジ郡の TIGER/Line データです。私は、必要なソフトウェアに対する Geocoder の有用性をテストしているだけなので、米国のデータセット全体ではなく、主要な国勢調査データベースからのみダウンロードしました。最終製品で最終的に使用されない可能性のある数 GB のデータをダウンロードするのに 10 時間も費やしたくありませんでした。

SQLite3::Database::FunctionProxy クラスで見つけた情報に基づいて、この動作を説明する最善の推測は次のとおりです。

  1. 私の SQLite3 は正しくインストールされていますが、Geocoder が必要に応じて set_result を見つけられないように、何かが正しく構成されていません。
  2. SQLite3 が正しくインストールされていませんが、どこで設定を間違えたのかわかりません。

誰かがこれについて何か助けを提供できれば、私はそれを大いに感謝します. よろしくお願いします。

4

2 に答える 2

0

sqlite3-ruby1.2.5 バージョンのgemを使用する必要があります。

gem install sqlite3-ruby --version=1.2.5

sqlite3 を提供する他の gem (sqllite3 や sqllite3-ruby の新しいバージョンなど) がないことを確認するか、このバージョンの gem を明示的に要求することができます。

于 2011-06-25T21:38:57.207 に答える
0

このバージョンの Sqlite Ruby Gem を使用してみてください: http://github.com/schuyler/sqlite3-ruby

于 2010-07-15T20:09:41.980 に答える