Ruby on rails Rails 4-将字符串转换为时间格式,除非格式已经正确
我试图找出只有在字符串格式不正确的情况下,如何将其转换为时间格式 我当前的设置: 我有一个保存前回调Ruby on rails Rails 4-将字符串转换为时间格式,除非格式已经正确,ruby-on-rails,ruby,ruby-on-rails-4,callback,Ruby On Rails,Ruby,Ruby On Rails 4,Callback,我试图找出只有在字符串格式不正确的情况下,如何将其转换为时间格式 我当前的设置: 我有一个保存前回调 before_save :format_time def format_time self.from_time = from_time.to_time.strftime("%H %M") self.to_time = to_time.to_time.strftime("%H %M") end 这就是格式化用户在时间中输入的两个字符串 如果用户输入2:00 PM,则回调将其保存为
before_save :format_time
def format_time
self.from_time = from_time.to_time.strftime("%H %M")
self.to_time = to_time.to_time.strftime("%H %M")
end
这就是格式化用户在时间中输入的两个字符串
如果用户输入2:00 PM
,则回调将其保存为14 00
问题是,如果用户更新模型,回调将把14 00
变成00 00
因此,我想检查一下格式是否已经是应该的了。我不知道最好的方法是什么。谢谢 试试这个:
before_save :format_time
def format_time
self.from_time = sanitize_time( from_time )
self.to_time = sanitize_time( to_time )
end
def sanitize_time( time_str )
begin
DateTime.strptime(time_str, '%H %M') # will raise ArgumentError if not in '%H %M' format
time_str
rescue ArgumentError
time_str.to_time.strftime("%H %M")
end
end