我已经安装了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的任何帮助或参考。
答案 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