2015-10-23 5 views
0

У меня есть 2 модели: вакансии и vacancy_scheduleСохранение несколько диапазонов дат простой формы

Vacancy has_many :vacancy_schedules 
Vacancy_schedule belongs_to :vacancy 

В моей vacancy_schedule я хочу спасти vacancy_id, Дата_начало дата_окончания, 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 

Любая помощь или советы будут с благодарностью.

ответ

2

Используйте следующий код:

Создайте файл date_format.rb в конфигурации/Инициализаторы & написать следующий код:

класс ActiveSupport :: TimeWithZone
Защиту as_date (опции = {})
STRFTIME ('% m-% d-% Y')
конец

Защиту as_time (опции = {})
STRFTIME ('% I:% M')
конец

конец

В представлении напишите следующий код:
<% = f.simple_fields_for: vacancyscheduele делать | т | %>
<% = t.start_date.as_date%>
<% = t.end_date.as_date%>
<% = t.start_hour.as_time%>
<% = t.end_hour.as_time%>
<% конец%>

+0

Привет, форматирование разве что важно в данный момент, что делает его работу будет достаточно :) Спасибо –

+0

Проверьте код выше в поле зрения. Если вам нужно поле формы, напишите <% = f.text_field: start_date,: value => f.start_date.strftime ("% d-% m-% Y")%> –