【问题标题】:time_select helper and Time object creatingtime_select 助手和时间对象创建
【发布时间】:2014-01-17 05:47:56
【问题描述】:

有如下代码:

  .row
    = f.label       :start_time
    = time_select :model, :start_time, { minute_step: 30 }
  .row
    = f.label           :end_time
    = time_select :model, :end_time, { minute_step: 30 }

time_select 为每个副本生成 2 个选择(1 个小时和 1 个分钟)。结果,我们在具有“start_time(1i)”,...“start_time(5i)”字段的参数中具有“模型”哈希(与end_time相同)。我有以下问题:

  1. 如何从这个哈希创建一个新的时间对象?
  2. 是否可以为每个 time_select 只创建一个选择?

谢谢

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    如何从这个哈希创建一个新的 Time 对象?

    您可以让 Rails 为您完成工作:

    = f.time_select(:start_time, minute_step: 30)
    

    当您在控制器中的模型上调用 update_attributes 时,Rails 将创建 Time 对象并将其分配给模型。

    如果您使用 Rails 4,请务必使用强参数将 :start_time:end_time 列入白名单。

    是否可以为每个 time_select 只创建一个选择?

    默认情况下,Rails 不能这样做。但是,您可以使用 combined_time_select gem 为您完成:

    f.time_select(:end_time, combined: true, minute_step: 30)
    

    请务必在安装此 gem 后重新启动 Rails 服务器。

    【讨论】:

      【解决方案2】:

      这些帮助器已针对 ActiveRecord 模型及其属性进行了优化。如果您有 start_timeend_time 列,则无需担心自己从传递的参数创建 Time 对象。

      你具体想达到什么目的?

      【讨论】:

        猜你喜欢
        • 2011-02-09
        • 2012-02-03
        • 1970-01-01
        • 2014-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-16
        相关资源
        最近更新 更多