Ruby on rails Rails应用程序-预订时隙模式设置

Ruby on rails Rails应用程序-预订时隙模式设置,ruby-on-rails,ruby,model,schema,Ruby On Rails,Ruby,Model,Schema,我目前正在构建一个RubyonRails应用程序,供学生与讲师一起预订研讨会课程。我正在寻求一些关于模型设置的建议 我已经研究了&stack-overflow线程,但它们没有回答我的问题 所需功能: 讲师需要能够设置每周可供预订的重复时间段 除了每周重复的时间段外,讲师需要能够开辟额外的一次性时间段 讲师需要能够一次性删除可用的时间段,例如当讲师休假时 班级不限于一个学生,班级可以有老师希望的任意多的学生 所有课程都有一小时,所以只需要考虑开始时间 我当前的提案: 我正在考虑设置三个模型

我目前正在构建一个RubyonRails应用程序,供学生与讲师一起预订研讨会课程。我正在寻求一些关于模型设置的建议

我已经研究了&stack-overflow线程,但它们没有回答我的问题


所需功能:

  • 讲师需要能够设置每周可供预订的重复时间段
  • 除了每周重复的时间段外,讲师需要能够开辟额外的一次性时间段
  • 讲师需要能够一次性删除可用的时间段,例如当讲师休假时
  • 班级不限于一个学生,班级可以有老师希望的任意多的学生
  • 所有课程都有一小时,所以只需要考虑开始时间

我当前的提案:

我正在考虑设置三个模型和三张桌子。这三种型号都连接到同一
车间
控制器

示例数据使用以下场景:Tom每周一和周二上午9点上课,但仅在下周,他将周二的课改为周三上课

我的想法是,我有一个模型,列出了所有教师的班级。我有另一个模型,用于每个教师课堂的循环时间段。然后,我有了第三个异常模型,作为每周重复上课时间的“更改”列表:

车间
模型链接到
车间
表:

ID | Workshop Name | Price
1  | Tom's Class   | 100
ID | Workshop ID | Times
1  | 1           | {Monday 0900, Tuesday 0900}
ID | Workshop ID | Type    | Time
1  | 1           | Active  | {2017May31 09am}
2  | 1           | Inactive| {2017May30 09am}
workshop\u times\u recurtive
模型链接到
workshop\u times\u recurtive
表:

ID | Workshop Name | Price
1  | Tom's Class   | 100
ID | Workshop ID | Times
1  | 1           | {Monday 0900, Tuesday 0900}
ID | Workshop ID | Type    | Time
1  | 1           | Active  | {2017May31 09am}
2  | 1           | Inactive| {2017May30 09am}
workshop\u times\u other
模型链接到
workshop\u other
表:

ID | Workshop Name | Price
1  | Tom's Class   | 100
ID | Workshop ID | Times
1  | 1           | {Monday 0900, Tuesday 0900}
ID | Workshop ID | Type    | Time
1  | 1           | Active  | {2017May31 09am}
2  | 1           | Inactive| {2017May30 09am}
我的问题是:

  • 这是为我的应用程序设置模型的最优雅的方式吗?我并没有完全偏离轨道?如果不是,什么是更好的解决方案
  • 我希望我能够解析字符串,比如
    “周一0900,周二0900”
    “2017May31 09am”
    ,这样信息就可以在javascript驱动的日期时间选择日历上正确显示。我当前的设置是否允许我在前端实现这一点

  • 为了主要回答你的第二个问题,我建议使用一种既定的格式来重复计划,比如。还有一个很好的解决方案

    但是,由于它也可以处理常规计划的例外情况,因此它可能也会大大简化您的模型