任何人都可以帮助Simplegeo -ruby客户端在Rails 3应用程序中工作吗?

时间:2011-02-07 23:35:52

标签: ruby-on-rails-3 geolocation gem

我已经安装了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动作如下所示:

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 个答案:

答案 0 :(得分:1)

您的Gemfile中是否有simplegeo gem?你有没有运行bundle install命令?当我遇到这样的错误时,这通常是个问题。

答案 1 :(得分:0)

您的图层是否称为“com.mylayer.records”?这通常只是一个示例层。

在此处创建您自己的图层:http://simplegeo.com/layers

如果您看不到该页面,则无法访问SimpleGeo Storage的私有测试版。它应该在几个月后在公众场合。

如果您想在美国对地址进行地理编码,请使用SimpleGeo的/1.0/context端点:http://simplegeo.com/docs/api-endpoints/simplegeo-context#get-context