我在本地MySQL機器上成功使用了gmaps4rails gem。然而,當我部署到PG在Heroku上,我得到相對於下列代碼錯誤使用了gmaps4rails「附近」功能找到附近的選址地點:Rails -gmaps4rails postgres上的gem
2012-05-21T17:58:40+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR: operator does not exist: numeric - character varying
2012-05-21T17:58:40+00:00 app[web.1]: ^
2012-05-21T17:58:40+00:00 app[web.1]: LINE 1: ...8.755864232 * 2 * ASIN(SQRT(POWER(SIN((30.1926300 - venues.l...
2012-05-21T17:58:40+00:00 app[web.1]: HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
2012-05-21T17:58:40+00:00 app[web.1]: : SELECT venues.*, 3958.755864232 * 2 * ASIN(SQRT(POWER(SIN((30.1926300 - venues.latitude) * PI()/180/2), 2) + COS(30.1926300 * PI()/180) * COS(venues.latitude * PI()/180) * POWER(SIN((-85.8356740 - venues.longitude) * PI()/180/2), 2))) AS distance, CAST(DEGREES(ATAN2(RADIANS(longitude - -85.8356740), RADIANS(latitude - 30.1926300))) + 360 AS decimal) % 360 AS bearing FROM "venues" WHERE (3958.755864232 * 2 * ASIN(SQRT(POWER(SIN((30.1926300 - venues.latitude) * PI()/180/2), 2) + COS(30.1926300 * PI()/180) * COS(venues.latitude * PI()/180) * POWER(SIN((-85.8356740 - venues.longitude) * PI()/180/2), 2))) <= 5) ORDER BY distance LIMIT 5):
2012-05-21T17:58:40+00:00 app[web.1]: app/controllers/venues_controller.rb:22:in `show'
我懷疑這是因爲某件事不支持在postgres中的這個查詢中,但是gem據說支持postgres。任何想法發生了什麼?
就是這樣。謝謝! – alpheus
「MySQL試圖友善地在背後做很多隱式類型轉換,PostgreSQL試圖通過讓你明確地表達你的意思來避免混淆,從而變得友好。」 - 哇! +++++++ 1 :) – Salil
@Salil:我不喜歡我的數據庫猜測我正在做什麼或我的意思:破碎的代碼是暫時的,破碎的數據是永遠的。 –