我试图弄清楚如何为“迟到”的工作创造一个范围。
“迟到”的工作将是状态为 :in_progress 的工作,其中 :due 日期早于今天。
(我没有使用任何状态宝石,而是使用 Postgres 作为数据库)。
这就是我到目前为止所做的。我对 if then 语句相当陌生,并且到目前为止只创建了基本范围。关于如何在我的模型中解决这个问题的任何想法?
# 状态
STATES = %w[bids in_progress complete canceled]
delegate :bids?, :in_progress?, :complete?, :canceled?, to: :current_state
def current_state
(events.last.try(:state) || STATES.first).inquiry
end
# 范围
def self.late
if @current_state_jobs == :in_progress?
where('due < ?', Time.now)
else
nil
end
end
我可以在后期范围中使用第一个 current_state 范围吗?我不知道