如何在Rails表单中启用datetime_select字段的验证?

时间:2015-02-18 06:14:55

标签: jquery ruby-on-rails

我有一个铁轨形式:

<%= form_for(@product) do |f| %>
    <%= f.label :name %><br>
    <%= f.text_field :name, :id => "txt1" %>
    <%= f.label :release_date %><br>
    <%= f.datetime_select :release_date, :start_year => Time.now.year %>
    <%= f.submit "Submit" %>
<% end %>

我需要验证release_date。验证就像,用户不应该选择小于当前日期和时间的日期和时间。

是否可以以rails方式验证它,就像我对start_year所做的那样,或者我应该使用客户端验证?

2 个答案:

答案 0 :(得分:1)

你可以试试这样的东西,我没有测试过这个,但你可以试试

class Product < ActiveRecord::Base
    validate :released_valid_datetime

    def released_valid_datetime
        errors.add(:release_date, 'date should be lesser') if (release_date < Time.zone.now)
    end
end

答案 1 :(得分:0)

你可以使用simple_form gem:

以及表单中的这么多选项:

<%= f.input :date_of_birth, as: :date, start_year: Date.today.year - 90,
                          end_year: Date.today.year - 12, discard_day: true,
                          order: [:month, :year] %>

<%= f.input :age, collection: 18..60, prompt: "Select your age"%>