2011-02-07 6 views
1

私はsimplegeo-ruby gemをインストールしているし、これが正常にこれらのコマンドでレコードを作成し、Railsのコンソールを介して作業を取得することができました:誰もがRails 3アプリでSimplegeo -rubyクライアントを手に入れることができますか?

(注 - 私はgeokitと最初にGoogleを経由してアドレスを探しています)

>> @record = Record.new(:address => 'Address') 
>> geocoded = Geokit::Geocoders::GoogleGeocoder.geocode @record.address 
    record = SimpleGeo::Record.new({ 
    :id => @record.id, 
    :created => Time.now, 
    :lat => geocoded.lat, 
    :lon => geocoded.lng, 
    :layer => 'com.mylayer.records', 
    }) 
>> SimpleGeo::Client.add_record(record) 

新しいレコードを作成しようと、このエラーを投げたときに私のアプリが破壊されるしかし:

SimpleGeo::NotFound 
app/controllers/records_controller.rb:24:in `create' 

マイRecordsController#はアクションは次のようになります作成:

def create 
@record = Record.new(params[:record]) 
geocoded = Geokit::Geocoders::GoogleGeocoder.geocode @record.address 
    record = SimpleGeo::Record.new({ 
    :id => @record.id, 
    :created => Time.now, 
    :lat => geocoded.lat, 
    :lon => geocoded.lng, 
    :layer => 'com.mylayer.records', 
    }) 
    SimpleGeo::Client.add_record(record) 
if @record.save 
    flash[:notice] = "Successfully created record." 
    redirect_to @record 
else 
    render :action => 'new' 
end 
end 

SimplegeoとRails 3を使用しているすべてのヘルプやリファレンスは大歓迎です。

答えて

1

Gemfileにシンプルギフトの宝石はありますか?そして、bundle installコマンドを実行しましたか?これは、私がこのようなエラーに遭遇したとき、通常は問題になります。

0

あなたのレイヤーは "com.mylayer.records"ですか?これは通常単なる単なる層です。

ここに独自のレイヤーを作成します:http://simplegeo.com/layers

をあなたがそのページを見ることができない場合は、あなたがSimpleGeoストレージのプライベートベータにアクセスすることはできません。しかし、それは数ヶ月で一般に公開されるはずです。あなたは、米国の住所をジオコーディングしたい場合

、SimpleGeoの/1.0/contextエンドポイントを使用します。http://simplegeo.com/docs/api-endpoints/simplegeo-context#get-context

+0

ちょうどその使用例。私は自分のレイヤーを持っていて、コード内でそれを使用しています。シンプルギアレコードを作成しようとする前に、データベースにレコードを保存すると動作します。シンプルジョーの作成を新しい別のコントローラーに移す必要がありますか? –

関連する問題