date_received、created_at、および received_state を持つ請求書モデルがあります。
レコードの作成時に、date_received と created_at を比較して、received_state を更新したいと考えています。具体的には、created_at が date_received から 2 日以上経過している場合、received_state は赤に等しい必要があります。したがって、次のようなものです。
if created_at > date_received + 2 days
@invoice.update_attribute(:received_state, red)
else
@invoice.update_attribute(:received_state, green)
end
日付のヘルパー メソッドがあることは知っていますが、この例でそれらを使用する方法がわかりません。ご協力ありがとうございます。
更新:私は次のことを試しました。エラーはありませんが、レコードはどちらの条件でも更新されません:
if (:date_received - :created_at).to_i > 2
@invoice.update_attribute(:received_state, red)
else
@invoice.update_attribute(:received_state, green)
end
更新 2: 次のことを試しましたが、緑の条件が満たされていても、レコードは赤で更新されます。
if :date_received.to_i - :created_at.to_i > 2
@invoice.update_attribute(:received_state, red)
else
@invoice.update_attribute(:received_state, green)
end