2015-05-27 99 views
0

我正在使用地理編碼器gem,我想要對位置(城市,州)進行地理編碼並獲取控制器中的緯度。地理編碼器 - 在控制器中對地理編碼進行地理編碼

我正在這樣做,並得到以下錯誤。

<%= @geo = Geocoder.coordinates("Los Angeles").inspect %> 
<%= puts @geo.join(",") %> 

錯誤: 未定義的方法`加入了‘[46.7225341,8.9635602]’:字符串

我想要得到的緯度和經度作爲一個逗號分隔字符串中的數據庫來保存。

回答

2

我不認爲你想在這裏使用檢查。它可能將其轉換爲沒有連接方法的String。還有,通常使用before_save回調在模型上進行地理編碼,而不是在控制器中進行地理編碼。

0

您可以使用after_validation輕鬆地對模型中的地址進行地理編碼。

就像這樣。

 # app/models/venue.rb 
     geocoded_by :address 
     after_validation :geocode 

通過這種方式,您可以將緯度和經度屬性保存到相應的模型。

+0

我看到它也對地理錯誤值進行了地理編碼。任何想法如何處理它 –

+0

@HarshaMV取決於地理編碼API,默認情況下,它使用谷歌地圖API。你可以配置它們'config/initializers/geocoder.rb'文件。如果你沒有配置文件,使用'rails generate geocoder:config'生成一個 – user121212