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))) }
3つのスコープはすべて正しく機能しますが、最初の2つ(continuous
およびstandard
)のロジックは3番目のスコープ内で複製されます。これは、次のようにすることで避けたいものです。
scope :active, where{ (job_status_id == 2) & (continuous | (standard & (date_start > Time.now) & (date_end < Time.now))) }
...名前付きスコープを参照するための正しい構文がSqueelDSLに見つからないことを除いて。
やりたいことをする方法はありますか、それとも明示的にする必要がありますか?