2015-10-26 26 views
0

当用户创建空位时,我希望他们能够保存1个日期范围或多个单独的日期。通过simple_form的嵌套形式在模型中创建多个条目

所以我有2个型号,VacancyVacancyschedule

Vacancyschedule包括vacancy_id start_date end_date start_hour end_hour (to save a range)当它是多个独立的日期,我只是想离开end_date空,并有多个项目,并通过我的vacancy_id将它们结合起来。

这是我在我的视图代码:

... other code to ask for vacancy params, nothing special, nothing broken ... 

#Code to create entry in vacancyschedule 
    <%= t.simple_fields_for :vacancyschedule do |p| %> 
     <%= p.input :start_date, :as => :date_picker, :label => false%> 
     <%= p.input :start_hour, as: :time, default: Time.parse('09:00')%> 
     <%= p.input :end_hour, as: :time, default: Time.parse('17:00')%> 
    <% end %> 

然后,我有一些javascript,增加了另一个完全相同的副本,当用户想要添加第二个单独约会的区块之一。

现在我的问题:

它们所传递是很奇怪的格式。正如你可以看到我问:起始日期,:START_HOUR和:年底小时,这是我得到:

{"name"=>"", "street"=>"", "description"=>"", "skill_id"=>"", 
"jobtype_id"=>"", "wage"=>"", "vacancyschedule"=> 
{"start_date"=>"27/10/15", "end_date"=>"", "start_hour"=>"", 
"end_hour"=>"", "start_hour(1i)"=>"2015", "start_hour(2i)"=>"10", 
"start_hour(3i)"=>"26", "start_hour(4i)"=>"21", 
"start_hour(5i)"=>"00", "end_hour(1i)"=>"2015", "end_hour(2i)"=>"10", 
"end_hour(3i)"=>"26", "end_hour(4i)"=>"17", "end_hour(5i)"=>"00"}, 
"vacancyscheduele"=>{"start_date"=>"", "start_hour(1i)"=>"2015", 
"start_hour(2i)"=>"10", "start_hour(3i)"=>"26", "start_hour(4i)"=>"09", 
"start_hour(5i)"=>"00", "end_hour(1i)"=>"2015", "end_hour(2i)"=>"10", 
"end_hour(3i)"=>"26", "end_hour(4i)"=>"17", "end_hour(5i)"=>"00"}, 
"tag_list"=>""}, "radio"=>"on", "commit"=>"Create Vacancy", 
"controller"=>"vacancies", "action"=>"create", "employer_id"=>"2"} 

从我所看到的是,他们是非常不同的变量和不完整的传递(不是全部日期通过)。

有没有人有这个问题的经验吗?我将如何抓住这些元素,或者如何防止他们被推入这种格式?

回答

1

Eeeehhh,我讨厌嵌套形式。当我必须处理它们时,我总是回到基本的。签出这些精美的栏目。第二个我觉得是更好地针对您的问题,但第一个帮助理解:

http://railscasts.com/episodes/196-nested-model-form-part-1

http://railscasts.com/episodes/197-nested-model-form-part-2

在一天结束时,你需要知道你的HTML是生成和确保它是Rails在后端所期望的。另外,您必须在加载时考虑嵌套对象并节省时间。就你的HTML而言,就Rails而言,不会生成可解析的对象。另一方面,很难处理Rails的废话日期/时间选择器。我通常喜欢投入一些能产生更好日期选择的东西。一个生成一个易于映射到数据库字段的字符串。如果你使用bootstrap,我会使用引导日期选择器gem。

+0

谢谢!将观看! –

相关问题