前提・実現したいこと
Postsテーブル中からログインユーザーの投稿を抽出して
その中から投稿月(pay_month)でグループ化して月別でindexでリンクを表示させたいです。
下記の表示は開発環境での画像です。
開発環境のsqlite3では問題なく動作したのですが
本番環境のpostgresqlでエラーメッセージが発生しました。
エラー表示
ActionView::Template::Error (PG::GroupingError: ERROR: column "posts.id" must appear in the GROUP BY clause or be used in an aggregate function
該当のソースコード
def month_index @monthly_posts = Post.page(params[:page]).per(5).where(user_id: params[:id]).group("pay_month").order(pay_month: "desc") end
どうぞ、よろしくお願いいたします。
集約関数とgroup byは、必ず組み合わせて使わないといけませんが、ここでは集約関数が無いのにgroup byしているのでエラーなっているようです。
月別に、生活費をsumとかしたかったんではないでしょうか?それを追加する必要があるのでは。
あなたの回答
tips
プレビュー