【问题标题】:How do I set the collection for the years in a simple-form field with a date format?如何在具有日期格式的简单表单字段中设置年份的集合?
【发布时间】:2013-01-03 23:59:36
【问题描述】:

我使用的是简单格式,但我很难正确显示 date_of_birth。这可能是由于简单形式的文档有限以及我是菜鸟这一事实的结合。

无论如何,我正在尝试创建一个人们可以选择生日的年份集合。

date_of_birth是DATE形式的用户属性,需要输入年月日。现在我尝试如下更改年份的集合,但这会删除日期和月份的输入字段:

= simple_form_for(@user, :html => { :class => 'form-horizontal' }) do |f|
  ...
  = f.input :date_of_birth, :collection => 1910..2010

我在带有 HAML 的 Ruby on Rails 上使用 Simple-form。所以问题是:什么是只定义年份集合的正确方法,保留日期和月份输入的默认值?

【问题讨论】:

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


    【解决方案1】:

    下面的代码应该可以解决问题:

    f.input :date_of_birth, :as => :date,
            :start_year => 1910, :end_year => 2010,
            :order => [:day, :month, :year]
    

    (之前的代码未经测试,可能如玛雅预言的那样导致世界末日)

    您可以找到 SimpeForm here 的文档(尝试查找 date_of_birth ;))

    【讨论】:

    • 太好了,谢谢。不知道我怎么错过了,对不起。还有一件事。在文档页面上提到“select_year”也应该可以工作,但是当我添加“:select_year => 1990”时,它似乎没有任何改变。你能说明应该如何实施吗?提前致谢。
    • @Fritzz 这在哪里提到?我在链接的页面中找不到。很高兴知道它起作用了 BTW ;)
    • your link 上,它说 SimpleForm 接受与 Rails 中相应的输入类型帮助器相同的选项。当我查看type helper documention 时,会显示这些功能。但是,Select_year 似乎不起作用。我想我应该使用 ':default =>' 函数...只是弄清楚我应该如何格式化日期以使其正常工作。
    • 我想通了。使用 ':default => "1980-01-01".to_date' 就可以了。这是有道理的,这是最合乎逻辑的方式,对吧?
    • 据我所知 select_year 不是一个选项,它是一个表单助手[1],用于生成选择以仅生成年份选择。要做你想做的事,你应该使用 :default 选项。 [1]:edgeguides.rubyonrails.org/…
    猜你喜欢
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多