我有一个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"%>