我有一个地方(实验室)数据库。他们每个人都有开放和关闭时间。 我是新手,所以请评论你,更多经验交配的人会做的不同。
我决定使用day:string
,from_time: Time
,to_time: Time
创建名为OpenDay的模型。
我的主要问题与展示那些日子有关。 目前,插入数据库记录的表单如下所示:
如果在图片中保留它,它在数据库中只创建了2条记录,但它显示如下:
如果from_time = 00:00和to_time = 00:01则显示“已关闭”。
现在我想实现一个功能,以显示当前打开的每个实验室,问题是:
什么会更有效 - 重新实现表单,以便保存7条记录,然后执行一些mysql查询以显示当前打开的实验室,或者留下(在这种情况下)2条记录并实现如下所示的功能(检查对于每个实验室,如果它目前是打开的)?提前谢谢!
def opened_today?(lab)
weekdays = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
if !lab.open_days.empty?
days_hash = {}
current_day = nil
weekdays.each do |week_day|
lab.open_days.each do |open_day|
if open_day.day == week_day
days_hash[week_day] = {from_time: open_day.from_time, to_time: open_day.to_time}
current_day = open_day
else
days_hash[week_day] = {from_time: current_day.from_time, to_time: current_day.to_time}
end
end
end
# Dates variables:
today = Date.parse(Time.zone.now.to_s).strftime("%A").downcase
from_time = days_hash[today][:from_time].strftime("%H%M")
to_time = days_hash[today][:to_time].strftime("%H%M")
time_now = Time.now.strftime("%H%M")
if from_time < time_now && to_time > time_now
return true
else
return false
end
end
end