Мне известны области ActiveRecord, которые помогают добавлять фильтры, применяя условия к запросу SQL. Мой сценарий таков, что у меня есть немного сложная бизнес-логика, которая не может быть легко переведена в условия в запросе SQL для эффективной фильтрации. Я хотел бы подключиться к некоторым методам ActiveRecord, если это возможно, чтобы объект возвращался, только если бизнес-логика решает, что он действителен. Я хочу сделать его прозрачным для других разработчиков, которым в противном случае пришлось бы вызывать этот метод каждый раз, когда они запрашивают с использованием модели.
Например, Book.find(10)
или Book.where(name: 'Macbeth')
должен возвращать массив nil / empty, если validate_book
возвращает false и возвращает результат, только если метод возвращает true.
Я не хочу, чтобы каждый разработчик, использующий модель Book
, каждый раз вызывал запрос validate_book
. Может ли это быть сделано прозрачно в ActiveRecord?