0
我正在嘗試持續具有時間類型字段的對象。創建時,我嘗試將sleep_value
設置爲有效的時間對象,但保存似乎無提示失敗(即使raise_on_save_failure
設置爲true)。data_mapper:無法保存時間對象
如果我嘗試通過Sleep.all
或Sleep.get(1)
搜索對象,則出現錯誤argument out of range
。
我可以通過它來保持它的唯一價值是Time.now()
。如果我做了Sleep.all
,則返回該對象sleep_time => Time.now
。
gems:
data_mapper (1.2.0)
sqlite3 (1.3.10)
require 'sqlite3'
require 'data_mapper'
DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/test.db")
DataMapper::Model.raise_on_save_failure = true
class Sleep
include DataMapper::Resource
property :id, Serial
property :sleep_time, Time
end
DataMapper.finalize.auto_migrate!
Sleep.create(:sleep_time => Time.new(2015, 10, 1))
Sleep.all
更新:我已經做更多的試驗和錯誤,並發現以下值與時間字段兼容
Sleep.create(:st => (Time.now - 1))
Sleep.create(:st => Time.at((Time.now - Time.at(1000))))
(從SLEEP_TIME聖更名)和以下值不保存(不會引發錯誤,但記錄NT堅持)
Sleep.create(:st => Time.new(2015, 10, 1, 2, 2, 2, "+02:00"))
Sleep.create(:st => Time.new(2002))
Sleep.create(:st => Time.new((Time.now - Time.new(2002)))) #out of range
Sleep.create(:st => Time.at(2)) #out of range