设置管理员时间可用性

时间:2013-11-27 13:48:36

标签: ruby-on-rails

我正在努力建立一个预订系统。我有用户预订系统和admin(设计)用户。

管理员需要能够在管理页面中设置时间可用性,然后在用户表单中提供。

目前我正在考虑在admin.rb模型中添加start_datetime和end_datetime,但这并不考虑一周中的几天。

我的想法是每天都有一个复选框,然后是时间开始和时间结束。

有关如何将booking.rb表单中显示的日期限制为管理员设置的时间的任何建议。

目前代码是非常基本的,但如果你想要应用程序中的任何内容,请告诉我。

1 个答案:

答案 0 :(得分:0)

Ruby的Time类有很多日期时间验证选项。你可以做点什么

if user_submitted_time.saturday? || user_submitted_time.sunday? ...

这可用于验证。你可以在视图中以某种方式将日期变黑。

查看文档here以获取更多可能性。

您可以为视图添加帮助程序,以检查日期是否可用。然后使用javascript禁用该字段(如果已经预订)。

助手:

def is_booked(appt)
  appointment = Appointment.find_by_id(appt)
  if appointment.start_time?
  true
end

查看:

<% @appointments.each do |appt| %>
   <% if appt.is_booked(appt.id) %>
   <%= appt.date, class: "booked" %>
   <% else %>
   <%= appt.date, class: "open" %>
   <% end %>
<% end %>

然后使用CSS或Javascript来禁用/隐藏预订的日期。所有这些都可以重构为更清晰(你可以使用帮助器在视图中返回类),但这应该给你一般的想法。