【问题标题】:Saving multiple date ranges simple form保存多个日期范围的简单表格
【发布时间】:2016-01-22 23:56:40
【问题描述】:

我有 2 个模型:vacancy 和 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

任何帮助或提示将不胜感激。

【问题讨论】:

    标签: ruby-on-rails forms activerecord simple-form


    【解决方案1】:

    使用下面的代码:

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

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

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

    结束

    在视图中,编写以下代码:





    【讨论】:

    • 您好,此时格式化不是那么重要,让它工作就足够了 :) 谢谢
    • 查看上面的代码。如果你想要表单域,那么写 f.start_date.strftime("%d-%m-%Y") %>
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 2021-12-14
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多