我有一个问题,我最近发现Ruby无法将'Time HH:MM:SS'保存到数据库中。如果您按如下方式在时间迁移中使用时间类型:
class CreateParkings < ActiveRecord::Migration[5.2]
def change
create_table :parkings do |t|
t.date :ArrivalDate
t.time :ArrivalTime
t.date :DepartDate
t.time :DepartTime
t.integer :NumberOfPax
t.string :Title
t.string :Initial
t.string :Surname
t.string :Email
t.string :Waiver
t.string :Remarks
t.string :ABTANumber
t.references :user, foreign_key: true
t.timestamps
end
end
end
Ruby然后按如下所示将记录保存到DB => / HH:MM:SS
但是当您从中检索数据并将其呈现为json时,其显示的日期也将为“ 2000-01-01T23:12:15.000Z”
如下:
{
"parking": {
"id": 10,
"ArrivalDate": "2018-09-19",
"ArrivalTime": "2000-01-01T23:12:15.000Z",
"DepartDate": "2018-09-19",
"DepartTime": "2000-01-01T23:12:15.000Z",
"NumberOfPax": 2018,
"Title": "Mr Stanley",
"Initial": "SM",
"Surname": "Morris",
"Email": "stanley.morris@someemail.com",
"Waiver": "No Waiver",
"Remarks": "I will be parking late in the evening. ",
"ABTANumber": "HJKJKHDS123",
"user": {
"id": 1,
"name": "admin",
"email": "admin@admin.com",
"admin": true,
"member": true
}
}
}
如何确保仅在json中呈现时间。我读到我将需要使用{Attribute}.strftime("%H:%M:%S")
。但是我不确定如何遍历停车场集合。并将每个属性转换为此格式HH:MM:SS
如果您有任何想法,我将不胜感激。
答案 0 :(得分:0)
我会在Parking
模型中创建一个方法,例如:
def formatted_arrival_time
arrival_time.strftime("%H:%M:%S")
end
然后在序列化程序中,我将使用formatted_arrival_time
而不是arrival_time