保存多个日期范围的简单形式

Saving multiple date ranges simple form

我有2个模型:空缺和vacancy_schedule

Vacancy has_many :vacancy_schedules
Vacancy_schedule belongs_to :vacancy

在我的 vacancy_schedule 我要保存 vacancy_id、start_date、end_date、start_time、end_time

我研究了一些嵌套表单,并考虑过使用嵌套表单来实现它:

class Vacancy < ActiveRecord::Base
  has_many :vacancy_schedueles
  accepts_nested_attributes_for :vacancy_schedueles
end

但我如何在我的视图中显示它?

我希望能够按下 + 按钮并继续在彼此下方添加日期。

我的猜测是只向另一个模型添加 1 个日期我将不得不做这样的事情:

<%= f.simple_fields_for :vacancyscheduele do |t| %>
  <%= t.input :start_date, :as => :date_picker, :label => false%>
  <%= t.input :end_date, :as => :date_picker, :label => false%>
  <%= t.input :end_hour %>
  <%= t.input :end_hour %>
<% end %>

但是当我想添加一个 + 号并突然显示第二个 simple_fields_for 用户可以输入下一个日期时,我不知道从哪里开始。

当他按下提交时,所有内容都会同时提交,或者当他删除其中一个日期时,它会被正确删除。

最终结果应该是这样的 vacancy_schedule:

Vacancy_id / start_date / end_date    / start_time / end_time
1          /  1/1/2015  / 2/1/2015    / 14:30      / 19:30
1          /  5/1/2015  / 6/1/2015    / 11:30      / 12:30
1          /  10/1/2015 / 11/1/2015   / 16:30      / 19:30
2          /  6/1/2015  / 7/1/2015    / 14:30      / 19:30
etc etc

如有任何帮助或提示,我们将不胜感激。

使用下面的代码:

在 config/initializers 中创建文件 date_format.rb 并写入以下代码:

class ActiveSupport::TimeWithZone
def as_date(options = {})
strftime('%m-%d-%Y')
结束

def as_time(选项={})
strftime('%I:%M')
结束

结束

在视图中,写入以下代码:
<%= f.simple_fields_for :vacancyscheduele do |t| %>
<%= t.start_date.as_date %>
<%= t.end_date.as_date %>
<%= t.start_hour.as_time %>
<%= t.end_hour.as_time %>
<% 结束 %>