【问题标题】:rails simple form date input - separate integer inputsrails 简单形式的日期输入 - 单独的整数输入
【发布时间】:2021-09-17 10:34:50
【问题描述】:

我的架构中有一个名为 dob 的日期列。

我正在使用一个简单的表单来呈现dob。 我想将输入格式化为 3 个单独的整数输入。 我得到的最接近的是这段代码: <%= f.input :dob, order: [:day, :month, :year] %>

但是它会产生这个:

这很接近。但是我需要输入是整数输入,而不是下拉列表。我也希望月份也是一个整数。 如果我使用as: :integer,它只返回一个输入。 有任何想法吗?简单的表单文档并不是特别有用。 谢谢

【问题讨论】:

    标签: ruby-on-rails ruby date simple-form


    【解决方案1】:

    您将需要 3 个整数输入:

    f.integer :day
    f.integer :month
    f.integer :year
    

    这要求您在模型上具有日、月和年属性访问器,并从组件整数中组装日期,可能在控制器中,例如

    # users_controller.rb
    def create
      params[:dob] = Date.new(params[:year], params[:month], params[:day])
      #... the rest of the method
    end
    

    为了填充整数字段以进行编辑,您需要模型上的方法,例如

    # in User.rb
    def day
      dob.day
    end
    # ...etc
    

    您还需要检查用户输入的数据是否在范围内。 所有这些特殊处理都是通常不这样做的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      相关资源
      最近更新 更多