我有一个铁轨形式:
<%= 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
所做的那样,或者我应该使用客户端验证?
答案 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"%>