У меня есть ситуация, когда я применяю некоторые критерии к отношению AR, но эти критерии не могут быть выражены в SQL.Пользователи получают доступ к этой функции, подобной следующей:
ar_relation = Model.all
filter = Filter.new
results_array = filter.filter(ar_relation, limit: 10, offset: 10)
Это позволяет пользователям добавлять свои собственные критерии к ar_relation
перед применением дополнительной фильтрации.
Я столкнулся со следующей проблемой: Filter
исключит строки из результата, поэтому он должен знать о limit
и offset
.Однако это не очевидно для пользователей.Если они добавляют limit
или offset
к ar_relation
, это прерывает обработку в Filter
.
Мое предлагаемое решение состоит в том, чтобы Filter
проверить ar_relation
для offset
или limit
и бросьте ArgumentError
, если он был предоставлен.Однако из документации AR я не думаю, что можно спросить отношение AR, каково его текущее ограничение.Это возможно?