Rails和数据库结构

时间:2016-09-15 21:50:49

标签: mysql ruby-on-rails

我有一个地方(实验室)数据库。他们每个人都有开放和关闭时间。 我是新手,所以请评论你,更多经验交配的人会做的不同。

我决定使用day:stringfrom_time: Timeto_time: Time创建名为OpenDay的模型。

我的主要问题与展示那些日子有关。 目前,插入数据库记录的表单如下所示:

enter image description here

如果在图片中保留它,它在数据库中只创建了2条记录,但它显示如下:

enter image description here

如果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 

0 个答案:

没有答案