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



我有一个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。验证类似于,用户不能选择小于当前日期和时间的日期和时间。

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

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

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

您可以使用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"%> 

最新更新