我正在努力建立一个预订系统。我有用户预订系统和admin(设计)用户。
管理员需要能够在管理页面中设置时间可用性,然后在用户表单中提供。
目前我正在考虑在admin.rb模型中添加start_datetime和end_datetime,但这并不考虑一周中的几天。
我的想法是每天都有一个复选框,然后是时间开始和时间结束。
有关如何将booking.rb表单中显示的日期限制为管理员设置的时间的任何建议。
目前代码是非常基本的,但如果你想要应用程序中的任何内容,请告诉我。
答案 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来禁用/隐藏预订的日期。所有这些都可以重构为更清晰(你可以使用帮助器在视图中返回类),但这应该给你一般的想法。