In my Rails 5 app, I'm receiving this error from a query, but I don't know how to fix it.
PG::SyntaxError: ERROR: subquery has too many columns
My controller:
def index
@canvases = current_user.get_voted Canvas
@activities = PublicActivity::Activity.order("created_at desc").where(owner_id: current_user.friend_ids, owner_type: "User").or(PublicActivity::Activity.order("created_at desc").where(recipient_id: current_user.id)).or(PublicActivity::Activity.order("created_at desc").where("key = ? AND recipient_id in (?)", "canvas_product.create", @canvases)).paginate page: params[:page], per_page: 30
end
The error is somewhere in this query:
(PublicActivity::Activity.order("created_at desc").where("key = ? AND recipient_id in (?)", "canvas_product.create", @canvases))
@canvasesis a set of actual canvases, and maybe Rails isn't interpreting these as ids properly... try changing that to:where("key = ? AND recipient_id in (?)", "canvas_product.create", @canvases.map(&:id))- if that works, then you know that's what it was.