Hittade svaret själv. Med prefixet this.*
Jag kan referera till fälten. Och jag kan använda JavaScript-funktioner. MongoDB blir svalare och svalare!
Så här är 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
Skapa tidsstämplar i js fungerar annorlunda. Så jag var tvungen att bli av med de tre sista siffrorna och runda dem. Om någon vet ett mer elegant sätt, vänligen meddela mig.
Mitt enda problem kvar är att jag inte kan lagra ett Date
invända mot MongoDB. Den säger alltid till mig att jag måste använda Time
. Jag tror att det är bättre att uppgradera mongoid till 3.0.1.