6
mối quan hệ:cột "users.id" phải xuất hiện trong mệnh đề GROUP BY hoặc được sử dụng trong một chức năng tổng hợp
Item belongs to Product
Product belongs to User
mục mô hình phạm vi:
scope :search, ->(search_term) {
select('products.name, users.*, products.brand, COUNT(products.id)')
.joins(:product => :user)
.where('users.name = ? OR products.brand = ?', search_term, search_term)
.group('products.id')
}
Các kết quả trên trong SQL sau tuyên bố:
SELECT products.name, users.*, products.brand, COUNT(products.id) FROM "items"
INNER JOIN "products" ON "products"."id" = "items"."product_id"
INNER JOIN "users" ON "users"."id" = "products"."user_id"
WHERE (users.name = 'Atsuete Lipstick' OR products.brand = 'Atsuete Lipstick')
GROUP BY products.id
Vấn đề ở đây là lỗi xảy ra:
ActiveRecord::StatementInvalid: PG::Error: ERROR: column "users.id"
must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT products.name, users.*, products.brand, COUNT(product...
Điều gì có thể khắc phục cho điều này?
sẽ không phải là hồ sơ nhóm với user.id giống nhau không? –
@alexBrand, tôi có câu hỏi là ông Obazee. –
Có, câu trả lời này không có ý nghĩa. Nếu bạn nhóm theo users.id, điều đó giống như không nhóm. – bronson