– 用户可以是服务提供商或买家
– 服务提供商设置其可用性(但最多只能提前6个月设置其可用性)
– 然后买家可以根据这些可用性预约 – 根据服务类型,每次预约需要不同的时间
– 根据买方选择的约会,根据服务的使用时间显示不同的可用性集
我建立的是以下内容:
– TimeSlot模型,我根据start_time和end_time属性创建了许多通用的30分钟时隙.为了使这些时间段延长到未来6个月,我每天都有一个后台工作,创造了所有必要的新时段
class TimeSlot < ActiveRecord::Base has_many :user_time_slots # ... more methods belowend
– UserTimeSlots模型,基本上代表服务提供商可以设置的可用性.因此,当他们创建user_time_slot时,他们基本上是说他们当时可用.
class UserTimeSlot < ActiveRecord::Base belongs_to :time_slot belongs_to :service_provIDer,:class_name => "User" belongs_to :appointmentend
– 具有许多user_time_slots的约会模型.它有很多,因为约会属于需要一定时间的服务(服务的time_required属性),它可能跨越多个连续的user_time_slots.
class Appointment < ActiveRecord::Base has_many :user_time_slots belongs_to :buyer,:class_name => "User" belongs_to :service_provIDer,:class_name => "User" belongs_to :serviceend
– 具有许多约会且属于创建该服务的服务提供商的服务模型.
class Service < ActiveRecord::Base has_many :appointments belongs_to :service_provIDer,:class_name => "User"end
这个领域模型有效;但是,我想知道是否有更好的方法来做到这一点,因为以下内容:
>使用后台工作每天在我的后端创建TimeSlot记录似乎有点笨拙 – TimeSlots的唯一目的是拥有开始和结束时间然后关联.
>一旦用户(买方)选择了他们想要的服务,我不确定如何有效地找到连续的x个user_time_slots,因此可用于预约(例如,如果我有30分钟的时间段)间隔和用户选择需要3个小时的约会,我必须找到6个连续的时间段).例如,如果用户点击服务的实例,我将不得不1)获得该服务所需的时间(很容易做到)和2)我必须找到所有用户的user_time_slots并收集他们的关联time_slots,然后将每个时隙的开始和结束时间相互比较以找到连续的时间.这对我来说似乎太过迭代,看起来这会让我的应用程序陷入困境!
有没有人有更好的方法或解决方案来做到这一点(特别是围绕找到连续时间段的主题)?
解决方法 看起来像一个有趣的项目. 总结以上是内存溢出为你收集整理的ruby-on-rails – 在Rails中建立预约系统全部内容,希望文章能够帮你解决ruby-on-rails – 在Rails中建立预约系统所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)