Rails基于位置的搜索无法在Heroku上运行

时间:2011-03-20 08:00:53

标签: ruby-on-rails heroku geokit

最近我在Heroku上部署了我的应用程序。我正在使用Geokit根据用户的位置搜索事件。

@events = Event.all(:origin => [@ location.lat,@ location.lng],:within => 5,:conditions => [“end_date> =?”,日期。今天],:select =>“id,created_at,user_id,location,description,permalink,title”,:order =>“created_at DESC”)

上述语句在我的本地系统中使用mysql数据库工作正常。

但是我在Heroku上执行相同的stmt时遇到错误。请检查我在Heroku上遇到的以下错误。

ActiveRecord :: StatementInvalid(PGError:错误:函数弧度(字符变化)不存在 2011-03-20T00:52:23-07:00 app [web.1]:LINE 2:...,COS(0.303256183987648)* COS(1.36963671754269)* COS(RADIANS(fr ... 2011-03-20T00:52:23-07:00 app [web.1]:^ 2011-03-20T00:52:23-07:00 app [web.1]:提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

非常感谢任何帮助。

谢谢, 格利扬

1 个答案:

答案 0 :(得分:6)

作为单挑,Heroku使用Postgres作为唯一的SQL数据库后端:http://devcenter.heroku.com/articles/database

因此,您的问题与这两个Q& A:

有关

Why does Postgresql fail with Geokit like this?

Rails: Converting from MySQL to PostGres breaks Geokit Distance Calculations?

在您的情况下,您应该添加数据库迁移并将位置模型中的“lat”和“lng”从“string”(或“text”)更改为“float”,然后Geokit应该与Postgres和Heroku分别。