【问题标题】:Setting Admin time availability设置管理员时间可用性
【发布时间】:2018-04-23 16:02:49
【问题描述】:

我正在尝试建立一个预订系统。我有用户预订系统和管理员(设计)用户。

管理员需要能够在管理页面中设置他们的时间可用性,然后该页面将在用户表单中可用。

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    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 禁用/隐藏预订的日期。所有这些都可以重构为更简洁(您可以使用帮助器在视图中返回类),但这应该给您一个大致的想法。

    【讨论】:

    • 我了解验证,但如果管理员在可用时间没有该时间,我希望用户甚至无法在预订中选择时间。我正在考虑存储天数、开始时间和结束时间。谁想到时间会变得如此混乱。
    • 已编辑原始答案。这可能需要一些调整,但应该让你接近。是的,约会时间真的很痛苦。无论哪种方式,您都应该查看上面的链接,了解 Ruby 的 Time 类中可用的一些方法。以后可能会派上用场。
    • 好的,但是如何将数据存储在管理模型中。用户可以从以下位置检查可用:& 可用到:以及我将如何存储一周中的日期,即; :mon, :tue, :wed, :thu, :fri
    • 你没有。就数据库而言,日期时间是日期时间。只需使用上面文档中的方法来简化视图层的数据。
    • 这没有意义。我的管理员需要在管理页面的表单中设置他可用的日期。我在管理模型中设置了 5 个布尔结构以及开始和结束时间。然后管理员可以在复选框中设置它并下拉,我将使用建议的帮助器与管理员模型进行比较。
    猜你喜欢
    • 2017-07-28
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多