Ruby on rails 地理编码器-对控制器中的数据进行地理编码
我正在使用地理编码器gem,我想对位置(城市、州)进行地理编码,并在控制器中获取lat lng 我正在这样做,并得到以下错误Ruby on rails 地理编码器-对控制器中的数据进行地理编码,ruby-on-rails,google-maps,rails-geocoder,Ruby On Rails,Google Maps,Rails Geocoder,我正在使用地理编码器gem,我想对位置(城市、州)进行地理编码,并在控制器中获取lat lng 我正在这样做,并得到以下错误 <%= @geo = Geocoder.coordinates("Los Angeles").inspect %> <%= puts @geo.join(",") %> 错误: “[46.7225341,8.9635602]”的未定义方法“join”:字符串 我想将lat和lng作为逗号分隔的字符串保存在数据库中。我想您不想在这里使用insp
<%= @geo = Geocoder.coordinates("Los Angeles").inspect %>
<%= puts @geo.join(",") %>
错误:
“[46.7225341,8.9635602]”的未定义方法“join”:字符串
我想将lat和lng作为逗号分隔的字符串保存在数据库中。我想您不想在这里使用inspect。它可能将其强制转换为一个没有连接方法的字符串。通常,地理编码是在模型上使用before_save回调进行的,而不是在控制器中进行的。您可以在验证后使用
轻松地对模型中的地址进行地理编码
就这样
# app/models/venue.rb
geocoded_by :address
after_validation :geocode
通过这种方式,您可以将纬度和经度属性保存到相应的模型。我发现它也对错误的值进行了地理编码。你知道怎么处理吗it@HarshaMV这取决于地理编码API,默认情况下它使用谷歌地图API。您可以配置它们config/initializers/geocoder.rb
文件。如果没有配置文件,请使用rails-generate-geocoder:config