Спасибо огромное!
Вот придумал еще одно решение. Не могу сообразить, подойдет ли оно вам
Element.joins(:options).select('*, count(*)').group(:id).having('count(*) = 2').where('options.id': [1, 2])
Очень костыльно, но работает. Сount должен быть равен кол-ву опций
Буду думать, как поменять архитектуру приложения так, чтобы подобные запрос нужен не был
Если напишу что-то вроде
Element.includes(:options).where('options.id': [1, 2])
то получу все элементы, где есть опция 1 ИЛИ опция 2
А нужны те элементы, где есть обе опции одновременно
Вариант Element.includes(:options).where('options.id': 1).where('options.id': 2) не работает
Ну допустим есть файл с логами, около 1 гб. Как удобно с ним работать? Мне ведь нужно его распарсить, подготовить для веба. А каждый раз это делать очень накладно