我正试图从08:00:00 UTC to 8:00
转换所有时间
通过使用strftime
以下是包含字段的个人资料模型。
class Profile < ActiveRecord::Base
attr_accessible :sun, :mon, :wed, :tue, :thu, :fri, :sat
end
这是查询。
Profile.select('mon, tue, wed, thu, fri, sat, sun').where('usermodel_id = ?', 3).strftime('%H:%M')
错误:
NoMethodError: undefined method `strftime'
请您帮我转换格式:就像这样 太阳:9:00,周一:9:00等
我真的需要一些帮助,请
答案 0 :(得分:2)
您正在针对活动记录集合运行strftime
方法,但该方法将针对Ruby Time
对象运行。你必须迭代集合,提取时间,然后你可以在它们上面调用strftime
。
例如:
profile_collection = Profile.select('mon, tue, wed, thu, fri, sat, sun').where('usermodel_id = ?', 3)
time_strings = profile_collection.map do |profile|
%w(mon tue wed thu fri sat sun).map do |field|
profile.send(field)
end.map { |field| field.strftime('%H:%M') if field }.compact
end
它的作用:提取所有时间字段,然后对每个字段应用strftime方法;返回的数组将包含每个配置文件的数组,该数组又包含每天的时间字符串。