我是一個RoR begginer,我正在開發使用MySQL的應用程序,但Heroku使用PostgreSQL ,所以我的arel工作不正常。Ruby on Rails - MySQL和PostGres
我搜索了關於輸出的錯誤,但在我的情況下,因爲我在做一個HABTM表之間的查詢 ,事情並沒有那麼順利。
基本上,產品has_and_belongs_to_many類別。 我的關係是 所有設置和一切本地工作,但部署時發生500錯誤。
於是不再拖延,問題是:
if params[:fc].present? #(checks if checkboxes have been ticked)
arel=arel.joins('INNER JOIN categories_products ON products.id=categories_products.product_id')
arel=arel.where('categories_products.category_id in (:fc_list)', :fc_list => params[:fc]).uniq
arel=arel.group('product_id').having('count(category_id) = :size', :size => params[:fc].size)
end
這樣的想法是讓用戶(...這工作好本地和在Heroku上......以前查詢)選中複選框列表,然後顯示選中類別中的所有產品。
我的heroku錯誤是:「products.id」必須出現在GROUP BY子句中,或者在集合函數中使用 。
這告訴我錯誤是GROUP BY和drom我讀的文檔,我必須把所有的列放在這裏。但由於它是一個HABTM關係,所以只有其他列在那裏,當我把它放置時,arel點正常運行。
我知道這裏已經有線程,但沒有人修復了我的 問題。
預先感謝您。
問候, 米格爾A.
不要試圖爲數據庫A開發數據庫並釋放數據庫B,那樣會失敗。 PostgreSQL不接受非法的GROUP BY結構,就像MySQL一樣。 –
嗯好的。恐怕我必須這樣做,或者完全遷移到Postgres。你知道我怎麼能把它作爲合法的GROUP BY嗎?我很難過。先謝謝你。 – Silver