Кто-нибудь может помочь заставить клиента Simplegeo -ruby работать в приложении Rails 3? - PullRequest
1 голос
/ 08 февраля 2011

Я установил simplegeo-ruby gem и смог заставить его работать через консоль Rails, успешно создавая записи с помощью следующих команд:

(Примечание - ясначала ищем адрес через 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 # create actionвыглядит так:

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, очень ценятся.

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Есть ли в вашем Gemfile драгоценный камень simplegeo?И вы выполнили команду bundle install?Обычно это проблема, когда я сталкиваюсь с такими ошибками.

0 голосов
/ 10 февраля 2011

Ваш слой называется "com.mylayer.records"?Обычно это просто примерный слой.

Создайте здесь свои собственные слои: http://simplegeo.com/layers

Если вы не видите эту страницу, значит, у вас нет доступа к закрытой бета-версии SimpleGeo Storage,Хотя через несколько месяцев он должен стать общедоступным.

Если вы хотите геокодировать адреса в США, используйте конечную точку SimpleGeo /1.0/context: http://simplegeo.com/docs/api-endpoints/simplegeo-context#get-context

...