Я успешно использую gmaps4rails gem на моей локальной машине MySQL. Однако, когда я раскрываю к PG на Heroku, я получаю следующее сообщение об ошибке относительно кода, который использует gmaps4rails «ряд» функцию, чтобы найти места вблизи выбранного местоположения:Rails - gmaps4rails gem on postgres
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, но этот камень якобы поддерживает postgres. Любая идея, что происходит?
Это было. Благодаря! – alpheus
«MySQL пытается быть дружелюбным, делая много неявных преобразований типа за вашей спиной, PostgreSQL пытается быть дружелюбным, заставляя вас сказать, что именно вы хотите избежать путаницы». - Вау! +++++++ 1 :) – Salil
@Salil: Мне не нравятся мои базы данных, которые догадываются о том, что я делаю, или о том, что я имею в виду: сломанный код временный, сломанные данные навсегда. –