ruby
class NewModel
include DataMapper::Resource
property :id ,Serial
property :use_starts_at, DateTime
property :use_ends_at, DateTime
def self.usable_after(time)
all(:use_starts_at => nil) | all(:use_starts_at.lt => time)
end
def self.usable_before(time)
all(:use_ends_at => nil) | all(:use_ends_at.gt => time)
end
end
NewModel.auto_upgrade!
NewModel.usable_after(Time.now).usable_before(Time.now)
# Expected SQL:
# SELECT `id`, `use_starts_at`, `use_ends_at`
# FROM `new_models`
# WHERE
# (`use_ends_at` IS NULL OR `use_ends_at` > '2010-07-06 15:42:18')
# AND
# (`use_starts_at` IS NULL OR `use_starts_at` < '2010-06-05 15:42:18')
#
# Generated SQL:
# SELECT `id`, `use_starts_at`, `use_ends_at`
# FROM `new_models`
# WHERE (`use_starts_at` IS NULL OR `use_starts_at` < '2010-07-06 15:42:18')
Created by bcrouse - 2010-07-06 23:24:23 UTC
Original Lighthouse ticket: http://datamapper.lighthouseapp.com/projects/20609/tickets/1354
该提问来源于开源项目:datamapper/dm-core