Ruby on rails Postgres Rails 4搜索查询id或多列

Ruby on rails Postgres Rails 4搜索查询id或多列,ruby-on-rails,postgresql,heroku,Ruby On Rails,Postgresql,Heroku,我在一个应用程序中使用Heroku的基本搜索表单,但是我无法让我的sql查询与PostgreSQL正常工作,即使这个查询与MySQL一起工作。顺便说一句,我试图粘贴Heroku的日志,但它只说当你搜索某个东西时,它会呈现500.html 这是我的Ordemderservico模型,具有搜索功能: def self.search(search) if search joins(:cliente).where("clientes.nome LIKE ? OR veiculo LIKE

我在一个应用程序中使用Heroku的基本搜索表单,但是我无法让我的sql查询与PostgreSQL正常工作,即使这个查询与MySQL一起工作。顺便说一句,我试图粘贴Heroku的日志,但它只说当你搜索某个东西时,它会呈现500.html

这是我的Ordemderservico模型,具有搜索功能:

def self.search(search)
   if search
    joins(:cliente).where("clientes.nome LIKE ? OR veiculo LIKE ? OR placa LIKE  ? OR ordem_de_servicos.id = ?", "%#{search}%", "%#{search}%", "%#{search}%", "#{search}")
   else
    where(nil)
   end
  end
我刚在本地安装了PostgreSQL,搜索时它返回了以下错误:

`PG::InvalidTextRepresentation: ERROR:  invalid input syntax for integer: "Augusto"
LINE 1: ... placa LIKE '%Augusto%' OR ordem_de_servicos.id = 'Augusto')
查询:

SELECT  "ordem_de_servicos".* FROM "ordem_de_servicos" INNER JOIN "clientes" ON "clientes"."id" = "ordem_de_servicos"."cliente_id" WHERE (clientes.nome LIKE '%Augusto%' OR veiculo LIKE '%Augusto%' OR placa LIKE '%Augusto%' OR ordem_de_servicos.id = 'Augusto')  ORDER BY prazo LIMIT 5 OFFSET 0

我终于想出了一个解决办法。那些有同样问题的人,下面是我的模型代码:

def self.search(search)
    if search
        where("id = ?", search)
        joins(:cliente).where("clientes.nome ilike :q or veiculo ilike :q or placa ilike :q", q: "%#{search}%")
    else
        where(nil)
    end
end

500表示服务器错误。日志中应该有更多关于错误发生在代码中的位置的信息。你不能在本地运行你的网站,而不是在Heroku上使用实时版本来调试它吗?我想问题是你不能只做whereniledwardmp,问题是我可以用MySql在本地运行,但是当上传到heroku时,我无法让它工作。rails控制台中的日志似乎还可以,但对于heroku,我无法完全读取日志。如果我不在查询中添加id,那么wherenil可以正常工作。您没有加入或包括ordem_de_servicos来使用id。很抱歉没有添加此信息,但此模型是Ordemdersevico,它与客户有关系,这就是我只加入客户表的原因。对于MySQL,它是一种魅力,但对于PostgreSQL,它就是不起作用!你能帮助我吗?