【问题标题】:Rails Location based search not working on HerokuRails 基于位置的搜索不适用于 Heroku
【发布时间】:2011-03-20 08:00:53
【问题描述】:

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

@events = Event.all(:origin => [@location.lat, @location.lng], :within => 5, :conditions => ["end_date >= ?", Date.today], : select => "id, created_at, user_id, location, description, permalink, ti​​tle", :order => "created_at DESC")

上面的语句在我的本地系统中运行良好,带有 mysql 数据库。

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

ActiveRecord::StatementInvalid (PGError: ERROR: function radians(character varying) 不存在 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 应用程序 [web.1]: ^ 2011-03-20T00:52:23-07:00 app[web.1]:提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

任何帮助将不胜感激。

谢谢, 卡利安。

【问题讨论】:

  • 您应该接受 juwalter 的回答。那是正确的。

标签: ruby-on-rails heroku geokit


【解决方案1】:

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

因此,您的问题与这两个问答有关:

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。

【讨论】:

  • 您好,juwalter,感谢您的帮助。它现在工作得很好。
猜你喜欢
  • 1970-01-01
  • 2011-01-03
  • 2010-12-29
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 2012-08-11
  • 2013-01-04
  • 1970-01-01
相关资源
最近更新 更多