mysql - Ruby on Rails : JQuery autocomplete on heroku server (SQL, PostgreSql 可能错误)

标签 mysql sql ruby-on-rails postgresql heroku

我的 Rails 应用程序中有一个文本字段,我已为其应用了 jquery 自动完成功能,该功能在我的本地主机中运行良好。

我已将应用程序上传到heroku,现在它给了我一个错误。

经过调试,我发现错误是我的查询。在我本地,我使用 sql,但在 heroku 上它是 PostgreSQL。

我的 Controller 自动完成操作:

@places = Place.order(:name).where("name like ? or pincode like ?" , "%#{params[:term]}%", "%#{params[:term]}%")
render json: @places.map{|p| "#{p.name} : #{p.pincode}"}

在heroku上它向我显示了这样的错误

PG::UndefinedFunction: ERROR:  operator does not exist: integer ~~ integer

所以我认为它与 pincode(这是一个整数)的参数有关,但我将它作为字符串传递。 (不过我不确定)

所以我将查询更改为

@places = Place.order(:name).where("name like ?" , "%#{params[:term]}%")

现在它工作正常,但不搜索 pincode 中的匹配项。

我尝试以多种方式构建查询,以便我可以同时搜索两者,但没有用。有人可以帮我查询吗?

最佳答案

听起来您的本地计算机上必须有不同版本的 Postgres。

但是无论是哪个版本,您都应该能够使用

将其转换为文本
@places = Place.order(:name).where("name like ? or pincode::text like ?" , "%#{params[:term]}%", "%#{params[:term]}%")

关于mysql - Ruby on Rails : JQuery autocomplete on heroku server (SQL, PostgreSql 可能错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27368304/

相关文章:

css - 如何覆盖事件管理 CSS?

ruby-on-rails - 我的整个 Rails 应用程序只从一个文件中获取 css 为什么

PHP:我的方法可以吗?

mysql - 带顺序的子查询

sql - 未定义行数的计算

java - Hibernate标准如何获取具有最大列值的行

php - 从数据库中删除 PHP 表单的问题

php - 如何避免用户提交的MySQL数据库存储重复内容

sql - T-Sql 获取行数相同的值

ruby-on-rails - Rails 中确定两个(或更多)给定 URL(作为字符串或哈希选项)是否相等的最佳方法是什么?