【问题标题】: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
您还需要检查用户输入的数据是否在范围内。
所有这些特殊处理都是通常不这样做的原因。