根据管理员数据检查用户的表单时间

时间:2013-11-27 16:05:18

标签: ruby-on-rails

下午全部,

我觉得这次非常困惑。也许是因为我现在没有时间概念,但我的管理员中有以下内容:

   t.boolean  "mon",                    default: false
    t.boolean  "tue",                    default: false
    t.boolean  "wed",                    default: false
    t.boolean  "thu",                    default: false
    t.boolean  "fri",                    default: false
    t.time     "start"
    t.time     "end"

我的预订中有以下表格:

<%= simple_form_for(@booking) do |f| %>
  <% if @booking.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@booking.errors.count, "error") %> prohibited this booking from being saved:</h2>

      <ul>
      <% @booking.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
  <ul>
  <li><%= f.label :first_name %></li>
   <li><%= f.text_field :first_name %></li>

   <li><%= f.label :last_name %></li>
   <li><%= f.text_field :last_name %></li>

   <li><%= f.label :email %></li>
   <li><%= f.text_field :email %></li>

   <li><%= f.date_select :start_datetime %></li>
   <li><%= f.time_select :start_datetime, :ignore_date => true, :minute_step => 15 %></li>
   <li><%=f.input :length, input_html: { :style=> 'width: 120px'}, collection: [['30 Mins', 30], ['1 Hour', 60]], :class => 'dropdown-toggle' %></li>
</ul>

我希望能够在预订时输入与用户设置的时间和日期相匹配。

任何人都可以帮助我解决这个时间问题。我试图以最务实的方式做到这一点,但失败了。

感谢。

1 个答案:

答案 0 :(得分:1)

因此,您希望能够预订管理员可用的一天,并且您希望禁用那些不可用的日期。你会遇到一个简单的date_select。你应该使用JavaScript日期选择器,比如jQuery datepicker插件。它们有一个名为beforeShowDay的函数,可让您选择是否有一天可用:

http://api.jqueryui.com/datepicker/#option-beforeShowDay

  $(function () {
    function isAvailable(day) {
      var cssClass = ""; // Becomes the default.
      // currentAdmin will have to be written by you.
      // You'll likely have to pull in information about
      // the admin via some info in the page or, better, 
      // via JSON.
      if (currentAdmin.isAvailableOn(day)) {
         return [true, cssClass];
      } else { 
         return [false, cssClass];
      }
    }

    $("#dp").datepicker({
        beforeShowDay: isAvailable
    });
  });