我正在使用Geocoder gem,我希望对位置(城市,州)进行地理编码,并在控制器中获取lat lng。
我正在这样做,并收到以下错误。
<%= @geo = Geocoder.coordinates("Los Angeles").inspect %>
<%= puts @geo.join(",") %>
错误: 未定义的方法`join'for“[46.7225341,8.9635602]”:String
我希望将lat和lng作为逗号分隔的字符串保存在数据库中。
答案 0 :(得分:2)
我不认为你想在这里使用检查。它可能会将它转换为一个没有连接方法的String。此外,通常使用before_save回调在模型上完成地理编码,而不是在控制器中。
答案 1 :(得分:0)
您可以使用after_validation
轻松对模型中的地址进行地理编码。
就像这样。
# app/models/venue.rb
geocoded_by :address
after_validation :geocode
通过这种方式,您可以将纬度和经度属性保存到相应的模型中。