Следующий запрос работает на локальном, но не на производственном уровне: (Production is heroku работает на postgreSQL, а локально я запускаю базу данных sqllite)
рубин
Tutor.joins(:expertises).where(:expertises => {:subject_id => [2,4]}).group("tutors.id").having("COUNT(*) = 2")
SQL
SELECT "tutors".* FROM "tutors" INNER JOIN "expertises" ON "expertises"."tutor_id" = "tutors"."id" WHERE ("expertises"."subject_id" IN (9)) GROUP BY tutors.id HAVING COUNT(*) = 1 ORDER BY rank DESC)
Я получаю следующую ошибку при производстве ActiveRecord :: StatementInvalid (PGError: ERROR: столбец "tutors.fname" должен появиться в предложении GROUP BY или использоваться в статистической функции
У меня в таблице есть следующие значения
id :integer not null, primary key
fname :string(255)
lname :string(255)
school :string(255)
major :string(255)
year :string(255)
bio :text
vid :string(255)
price :integer
phone :string(255)
skype :string(255)
address :text
Когда я пытаюсь настроить запрос на группировку по всем атрибутам, я получаю еще одну ошибку:
рубин
>> Tutor.joins(:expertises).where(:expertises => {:subject_id => [2,4]}).group("tutors.*").having("COUNT(*) = 2")
SQL
SELECT "tutors".* FROM "tutors" INNER JOIN "expertises" ON "expertises"."tutor_id" = "tutors"."id" WHERE ("expertises"."subject_id" IN (2, 4)) GROUP BY tutors.* HAVING COUNT(*) = 2 ORDER BY rank DESC
ActiveRecord :: StatementInvalid: PGError: ERROR: не удалось идентифицировать оператор упорядочения для репетиторов типов. УКАЗАНИЕ: используйте явный оператор упорядочения или измените запрос.
Помощь!