如何使用simple_form生成输入[type = date]?

时间:2015-03-16 11:11:28

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

当我f.input :start_date, as: :date时,我会得到3个选择元素(日,月和年)。

我可以f.input :start_date, as: :string获取input[type=text]元素,但如何使用simple_form生成input[type=date]元素?

3 个答案:

答案 0 :(得分:18)

您应指定html5选项:

f.input :start_date, as: :date, html5: true

Here是详细信息。

答案 1 :(得分:9)

  

默认情况下,Simple Form不会生成HTML 5日期/时间输入,因此使用日期,时间或日期时间都将使用普通的Rails助手生成选择框。我们认为浏览器还没有完全准备好这些,但您可以通过传递html5选项轻松选择每个输入:

     

<%= f.input :expires_at, as: :date, html5: true %>

希望simple_form documentation中的这条信息可以解决您的问题。

答案 2 :(得分:0)

您也可以将其设置为默认值,定义一个使其成为默认值的类:

# Use html5 date inputs by default, use html5: false to force
# the use of multiple selects
class DateTimeInput < SimpleForm::Inputs::DateTimeInput
  private

  def use_html5_inputs?
    input_options.fetch(:html5, true)
  end
end