【问题标题】:How to restrict the date field in a simple_form_for如何限制 simple_form_for 中的日期字段
【发布时间】:2014-08-19 18:18:00
【问题描述】:

我在 simple_form_for 中使用了一个简单的 date_field,它工作正常。我只需要调整它,以便它只显示 12 年前和之前的日期。即没有人应该能够输入过去 12 年内的日期。

这是我的代码行。

<%= f.date_field :birthday, start_year: Time.now.year - 100, 
          end_year: Time.now.year-12, :default => @profile.birthday %>

“start_year:”和“end_year”对我不起作用(也许我用错了?)。用户仍然可以输入无效日期。

有谁知道我应该尝试的其他事情吗?

【问题讨论】:

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


    【解决方案1】:

    在您的模型中使用验证。

     validates_inclusion_of :birthday, 
       in: Date.civil(1950, 1, 1)..Date.today-14.years,
       message: "Must be between 1950 and 2000 and now"
    

    当然,这是一个示例,您可以将其设置为几乎适合您需要的任何内容。

    【讨论】:

    • 感谢您的回答,效果很好。我只是想知道是否有办法限制用户可以选择的日期数量。 (用户会看到一个日历)。
    • 这将是另一个问题,我认为(尽管没有声称)它与 javascript 有关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    相关资源
    最近更新 更多