Есть ли способ, используя Squeel, ссылаться на уже существующие области?
Рассмотрим следующее:
scope :continuous, where{ job_type_id == 1 }
scope :standard, where{ job_type_id == 2 }
scope :active, where{ (job_status_id == 2) & ((job_type_id == 1) | ((job_type_id == 2) & (date_start > Time.now) & (date_end < Time.now))) }
Все три области работают правильно, но логика первых двух(continuous
и standard
) дублируются внутри третьего, чего я хотел бы избежать, выполнив что-то вроде:
scope :active, where{ (job_status_id == 2) & (continuous | (standard & (date_start > Time.now) & (date_end < Time.now))) }
... за исключением того, что я не могу найтиправильный синтаксис в DSL Squeel для ссылки на именованные области.
Есть ли способ сделать то, что я хотел бы, или мне просто нужно быть явным?