Я перенес приложение Rails 4.2.6 на 5.0.7, однако у меня возникла следующая серьезная проблема:
PG::ProtocolViolation: ERROR: bind message supplies 0 parameters, but prepared statement "" requires 2
Вот запрос, который я выполняю:
@items = Discount.includes(:status).where(status: {status: 'active'}, client_id: current_client_id)
После некоторых исследований я обнаружил, что это связано с ActiveRecord, и вот "исправление", которое работает: Github проблема
По сути, предлагается добавить скобки к параметрам where
.
@items = Discount.includes(:status).where(status: {status: ['active']}, client_id: [current_client_id])
И действительно, это работает хорошо
Вопрос:
Кто-нибудь знает суть этой проблемы?
Нужно ли применять этот «патч» ко ВСЕМ моим запросам AR?
Мне бы очень хотелось найти решение этой проблемы, если бы не было другого решения, я бы изменил +600 запросов по всему моему приложению.
Любая помощь будет оценена.