2013-11-27 33 views
0

下午再次,设置管理时间可用性

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

管理员需要能够设置在管理页面那么这将是可用的用户的形式对他们可用的时间。

目前我还想着把一个start_datetime和end_datetime在admin.rb模型,但这并不占星期几。

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

我如何会限制在形式booking.rb由管理员设置的时间显示的日期的任何建议。

代码是目前非常基本的,但让我知道,如果你想从应用程序中任何东西。

回答

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来禁用/隐藏在预订的日期。所有这些都可以被重构为更清晰(您可以使用助手在视图中返回类),但这是应该给你的一般想法。

+0

我了解验证,但我希望用户甚至无法在预订中选择时间,如果管理员在可用时间内没有。我正在考虑储存几天,start_time&end_time。谁认为时间会变得如此混乱。 –

+0

编辑原创答案。这可能需要一些调整,但应该让你接近。是的,日期时间可能是一个真正的痛苦。无论哪种方式,您都应该查看以上链接,了解Ruby的Time类中的一些方法。它稍后可能会派上用场。 –

+0

好的,但我如何将数据存储在管理员模型中。用户可以检查:可用于:以及我将如何存储一周的日子,即; :星期一,星期二,星期五,星期四,星期五 –