Har selv fundet svaret. Med præfikset this.*
Jeg kan henvise til felterne. Og jeg kan bruge JavaScript-funktioner. MongoDB bliver køligere og køligere!
Så her er min løsning:
class Invoice
include Mongoid::Document
field :invoice_date, :type => Date
field :days_for_payment, :type => Integer
...
scope :overdue, where("(Math.round(this.invoice_date.getTime() / 1000) + (this.days_for_payment * 24 * 3600)) < #{Time.now.to_i}")
...
end
Oprettelse af tidsstempler i js fungerer anderledes. Så jeg var nødt til at slippe af med de sidste tre tal og runde dem. Hvis nogen kender en mere elegant måde, så lad mig det vide.
Mit eneste problem tilbage er, at jeg ikke kan gemme en Date
indsigelse mod MongoDB. Den fortæller mig altid, at jeg skal bruge Time
. Jeg tror, jeg hellere opgraderer mongoid til 3.0.1.