为什么我在本地轨道环境中正常工作时会在heroku上出现PG错误?

时间:2010-09-22 03:48:54

标签: ruby-on-rails postgresql select heroku

我收到以下错误:

ReportsController#return_search (ActiveRecord::StatementInvalid) "PGError: ERROR: syntax error at or near \"FROM\"\nLINE 5: ...OUNT(contact_postalcards.id) AS postalcard_count, FROM \"cont...\n 

它在本地工作正常,但是当我推送到heroku时我得到错误:

我需要更改哪些内容才能在Heroku上的Postgres上使用?

@list = Contact.find :all,
  :select => "companies.name AS co_name, 
             companies.id AS comp_id, 
              COUNT(contact_emails.id) AS email_count, 
              COUNT(contact_calls.id) AS call_count, 
              COUNT(contact_letters.id) AS letter_count, 
              COUNT(contact_postalcards.id) AS postalcard_count",

  :conditions => ['contact_emails.date_sent < ? and contact_emails.date_sent > ?', 
                  report_end_date, report_start_date],

  :joins => [
    "LEFT JOIN companies ON companies.id = contacts.company_id",
    "LEFT JOIN contact_emails ON contact_emails.contact_id = contacts.id",
    "LEFT JOIN contact_letters ON contact_letters.contact_id = contacts.id",
    "LEFT JOIN contact_postalcards ON contact_postalcards.contact_id = contacts.id",
    "LEFT JOIN contact_calls ON contact_calls.contact_id = contacts.id"
  ],
  #:group => "companies.id"
   :group => "companies.name"
puts @list[0].attributes.inspect

2 个答案:

答案 0 :(得分:1)

来自错误消息:

  

AS postalcard_count,FROM

删除此逗号,在您的查询中,这是您的错误。

答案 1 :(得分:1)

看起来这是PG特定的,所以我完全改变了数据库结构。