저는 RoR을 시작한 사람이고 MySQL을 사용하여 응용 프로그램을 개발하고 있습니다. 그러나 Heroku는 Postgres를 사용하기 때문에 제 arel이 제대로 작동하지 않습니다.Ruby on Rails - MySQL과 PostGres
출력 된 오류를 검색했지만 내 경우에는 HABTM 테이블간에 쿼리를 수행하고 있으므로 상황이 잘 진행되지 않습니다.
기본적으로 제품에는 has_and_belongs_to_many 카테고리가 있습니다. 내 관계가 이고 모든 것이 로컬로 작동하지만이지만 배포시 500 오류가 발생합니다.
그래서 더 지체없이,이 문제는 다음과 같습니다
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가 ...에 좋은 일을 ... 이전 쿼리) 확인란 목록을 선택한 다음 검사 된 범주에있는 모든 제품을 표시하십시오.
내 heroku 오류 : "products.id"가 GROUP BY 절에 나타나야하며 집계 함수에 이 사용되어야합니다.
이것은 오류가 GROUP BY이고 drom이 내가 읽은 문서가 여기에 모든 열을 넣어야한다는 것을 알려줍니다. 그러나 HABTM 관계이므로 다른 열만이 있고, 내가 놓으면 arel 지점이 제대로 작동합니다.
이미이 스레드가 있다는 것을 알고 있지만 아무도 내 문제를 해결하지 못했습니다.
미리 감사드립니다.
감사합니다, 이것은이 관련이 미구엘 A.
데이터베이스 A와 데이터베이스 B에 대한 개발을 시도하지 마십시오. 실패합니다. PostgreSQL은 MySQL처럼 불법적 인 GROUP BY 구문을 허용하지 않습니다. –
흠. 나는 그것을해야하거나 Postgres로 모두 마이그레이션해야 할까 봐 걱정됩니다. 내 사건에서 어떻게 합법적 인 GROUP BY를 만들 수 있는지 알고 있니? 나는 힘든 시간을 보내고있다. 미리 감사드립니다. – Silver