У меня был запрос вроде:
MyModel.where(id: ids)
Что генерирует SQL-запрос, например:
SELECT "my_models".* FROM "my_models"
WHERE "my_models"."id" IN (1, 28, 7, 8, 12)
Теперь я хочу изменить это, чтобы использовать ANY
вместо IN
. Я создал это:
MyModel.where("id = ANY(VALUES(#{ids.join '),('}))"
Теперь, когда я использую пустой массив ids = []
, я получаю следующую ошибку:
MyModel Load (53.0ms) SELECT "my_models".* FROM "my_models" WHERE (id = ANY(VALUES()))
ActiveRecord::JDBCError: org.postgresql.util.PSQLException: ERROR: syntax error at or near ")"
ActiveRecord::StatementInvalid: ActiveRecord::JDBCError: org.postgresql.util.PSQLException: ERROR: syntax error at or near ")"
Position: 75: SELECT "social_messages".* FROM "social_messages" WHERE (id = ANY(VALUES()))
from arjdbc/jdbc/RubyJdbcConnection.java:838:in `execute_query'