В моем приложении на Rails 4 с Postgres DB, My Application берет адрес поставщика и показывает его на карте, который должен быть точным. Для геокодирования я использую geocoder gem
. Но независимо от того, что я делаю, значения широты / долготы всегда сохраняются путем округления, игнорируя точность / масштаб, указанные в файле миграции.
###migration file - addresses table===========================
t.text :address_1
t.text :landmark
t.text :street
t.string :city,add_index:true
t.string :state,add_index:true
t.string :zipcode
t.string :country,add_index:true
t.string :country_code
t.string :slug, index:true
##special care for geospatial coordinates
t.decimal :latitude, {:precision=>15, :scale=>15}
t.decimal :longitude, {:precision=>15, :scale=>15}
t.boolean :active,:default=>true
##in address.rb===============================================
geocoded_by :address_1
reverse_geocoded_by :latitude, :longitude do |obj,results|
if geo = results.first
obj.street = geo.formatted_address
obj.state = geo.state
obj.city = geo.city
obj.zipcode = geo.postal_code
obj.country = geo.country
obj.country_code = geo.country_code
end
end
after_validation :geocode, :reverse_geocode ,:if => :address_1_changed?
But every time, the values are rounded off to a precision of 6.For example -
Even if I try to update the latitude/longitude manually through the console.
Я не могу получить выделенные значения, как указано в моем
файл миграции (точность и масштаб 15)
##in rails console
2.4.1 :003 > Address.last.update_attributes(:longitude => "73.1338649019608")
(0.5ms) BEGIN
blah blah blah
(0.4ms) COMMIT
=> true
2.4.1 :004 > Address.last.longitude.to_s
=> "73.133864902"
##values are rounded off :(
Есть ли проблема с геокодером или что-то не так с Postgres.
Пожалуйста, помогите