我遇到了 Rails 4 对 Postgresql 的 ts_range 数据类型的支持的问题。这是我试图坚持的代码:
before_validation :set_appointment
attr_accessor :starting_tsrange, :ending_tsrange
def set_appointment
self.appointment = convert_to_utc(starting_tsrange)...convert_to_utc(ending_tsrange)
end
def convert_to_utc
ActiveSupport::TimeZone.new("America/New_York").parse(time_string).utc
end
基本上,我为约会 ts_range 的开始和结束设置了一个实例变量,其中两个字符串表示 date_times。在验证之前,它将它们转换为 utc 并将这些值保存到应保留的约会属性中。它设置正确,但是当我尝试检索记录时,约会属性现在为零。为什么这段代码没有按预期工作?