【问题标题】:Rails - Split integer form field into 3 separate sectionsRails - 将整数表单字段拆分为 3 个单独的部分
【发布时间】:2016-05-20 10:16:42
【问题描述】:

我有一个存储整数(分钟)的时间字段。我希望用户能够在表单中输入天、小时和分钟,而不是输入分钟。

.form-group
    = f.label :time, class: "col-sm-2 control-label"
    .col-sm-10
      = f.text_field :time, class: "form-control"

有没有一种简单的方法可以通过表单来做到这一点,这样我就可以...?

.form-group
    = f.label :days, class: "col-sm-2 control-label"
    .col-sm-10
      = f.text_field :days, class: "form-control"
.form-group
    = f.label :hours, class: "col-sm-2 control-label"
    .col-sm-10
      = f.text_field :hours, class: "form-control"
.form-group
    = f.label :minutes, class: "col-sm-2 control-label"
    .col-sm-10
      = f.text_field :minutes, class: "form-control"

我意识到我可以将天、小时和分钟作为数据库字段,但我宁愿只保留我的单个时间字段。

【问题讨论】:

  • 尝试在模型(或演示者/装饰者)中实现dayshoursminutes 方法以在表单中使用它们。可能您还必须实现分配方法。

标签: ruby-on-rails forms ruby-on-rails-4


【解决方案1】:

遇到了类似的情况,这对我有帮助。 gem time_splitter

看起来这也将为您完成这项工作,只需在您的模型拥有的任何日期时间字段之上运行。

【讨论】:

【解决方案2】:

您可以隐藏时间字段并显示您的天、小时和分钟字段,并使用 javascript 根据显示的字段上提供的值计算以分钟为单位的时间,然后提交。

所以它会是这样的(这是伪代码):

time.value = (days.value * 1440) + (hours.value * 60) + minutes.value.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多