有没有办法使用 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))) }
...除了我在 Squeel DSL 中找不到正确的语法来引用命名范围。
有没有办法做我想做的事,还是我只需要明确?