Я пытаюсь создать запрос, включающий столбец jsonb и 2 столбца, отличных от jsonb.
Несколько попыток объединить их не увенчались успехом, но 1 почти сработала, когда я использовал только 1 другой столбец, не относящийся к jsonb. У меня есть модель канала с хранилищем опций и несколькими атрибутами.
Если я разделяю запросы, они работают нормально, но в совокупности они получают пустой массив. Я позаботился о том, чтобы, если запросы действительно работали, для них наверняка есть данные, которые нужно вернуть.
Не столбцы jsonb - работает
Channel.where("platform_id = ? AND updated_at < ?",2,7.days.ago)
столбец jsonb - работает
Channel.where("options @> ?", {valid_account: true}.to_json)
в сочетании, где оператор - возвращает пустое []
Channel.where("platform_id = ? AND updated_at < ?",2,7.days.ago).where("options @> ?", {valid_account: true}.to_json)
1, где оператор с комбинированным запросом - снова возвращает пустое []
Channel.where("options = ? AND platform_id = ? AND updated_at < ?", {"valid_account" => true}.to_json, 2, 7.days.ago)
Я сейчас в растерянности и не уверен, как получить все это в одном запросе ... или если это вообще возможно.
Опять же ... определенно есть каналы, которые должны возвращаться с указанными выше запросами
TIA
ОБНОВЛЕНИЕ
Удалось получить запрос работать. попробовал почти каждую комбинацию, но пропустил одну критическую.
Channel.where("options @> ? AND platform_id = ? AND updated_at > ?", {valid_account: true}.to_json, 2, 7.days.ago)
это сработало. По какой-то причине я использовал '> @' в отдельном методе, но не комбинировал его для этого. Все работает сейчас. Спасибо за поддержку