私は RoR 初心者で、MySQL を使用してアプリを開発していますが、Heroku は Postgres を使用しているため、私のアレルは適切に機能していません。
出力されたエラーについて調べてみましたが、私の場合は HABTM テーブル間でクエリを行っているため、うまくいきません。
基本的に、製品には複数のカテゴリがあります。私の関係はすべて設定され、すべてがローカルで機能しますが、デプロイ時に 500 エラーが発生します。
したがって、さらに遅滞なく、問題は次のとおりです。
(...ローカルおよびherokuでうまく機能する以前のクエリ...)
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エラーは次のとおりです。「products.id」はGROUP BY句に表示されるか、集計関数で使用される必要があります。
これは、エラーがGROUP BYであり、読んだドキュメントを読んで、すべての列をここに配置する必要があることを示しています。でもHABTMの関係なので他のカラムしかなく、入れてみるとアレルスポットがちゃんと機能しています。
これに関するスレッドが既にあることは知っていますが、私の問題を解決したスレッドはありません。
前もって感謝します。
よろしく、 ミゲル A.