前提・実現したいこと
railsでテーブルを結合し、カウントしたいのですが、できません。
ローカルサーバーでは、できるのですが、herokuでデプロイするとエラーが出ます。
groupをgroup(:content)からgroup(:id)に変更すると、グループまではできるようになりました。
この後は、
①selectの使用
②selectのなかで、countの使用
③whereの使用
④orderで並び替え
をする予定です。
ひとつづつ進んでいいっているのですが、後どのようなエラーが出るでしょうか。
発生している問題・エラーメッセージ
column "tickets.id" must appear in the GROUP BY clause or be used in an aggregate function
該当のソースコード
@posts=Post.left_joins(:tickets).group(:id).select("*")
今後やりたい、ソースコードは以下の通りです。(ローカルではうまくいく状態です)
#@posts=Post.left_joins(:tickets).group(:id).select("posts.content,posts.id AS id,COUNT(`tickets`.`id`) AS tickets_count").where('content like ?',"%#{params[:content]}%").order(tickets_count: :desc)
post.rb
has_many :tickets
ticket.rb
belongs_to :post
migration
class CreatePosts < ActiveRecord::Migration[6.0] def change create_table :posts do |t| t.string :content t.timestamps end end end
migration
class CreateTickets < ActiveRecord::Migration[6.0] def change create_table :tickets do |t| t.integer :post_id t.string :ticket_id t.string :phonenumber t.integer :used t.timestamps end end end
補足情報(FW/ツールのバージョンなど)
rails ruby
sqlite pg
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。