В моем приложении Rails 5 я получаю эту ошибку из запроса, но я не знаю, как ее исправить.Rails - PG :: SyntaxError: ERROR: в подзапросе слишком много столбцов
PG::SyntaxError: ERROR: subquery has too many columns
Мой контроллер:
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
ошибка где-то в этом запросе:
(PublicActivity::Activity.order("created_at desc").where("key = ? AND recipient_id in (?)", "canvas_product.create", @canvases))
В предположении ... '@ холсты' представляет собой набор фактических полотен, и, возможно, Rails не интерпретирует их как идентификаторы правильно ... попробуйте изменить это на:' where ("key =? И recipient_id в (?) "," Canvas_product.create ", @ canvases.map (&: id))' - если это работает, то вы знаете, что это было. –
Это было! Спасибо! что я должен сделать, чтобы ограничить @canvases просто быть id перед запросом (чтобы быть более эффективным)? Спасибо! – yellowreign
Я создам ответ и добавлю, что :) –