0

ビューには 3 つの選択フィールドがあります。

<%= select("policyholderdetail", "dob_day", days_options, {:prompt => "#{t :day}"}) %>
<%= select("policyholderdetail", "dob_month", months_options, {:prompt => "#{t :month}"}) %>
<%= select("policyholderdetail", "dob_year", dob_years_options, {:prompt => "#{t :year}"}) %>

値の:dob_day範囲は 01 ~:dob_month31、01 ~ 12、および 1912 ~dob_year2012 (過去 100 年間)

このことから誰かの生年月日が少なくとも 17 年前であること、つまりその人物が少なくとも 17 歳であることを検証したいと思います。Railsモデルでこれを行うにはどうすればよいですか?

4

1 に答える 1

2

まず、3 つのフィールドすべてを表す DateTime を 1 つだけ保存していることを確認します。

DateOfBirth = Time.parse ("#{ dob_year + dob_month + dob_day } " )

次に、その日付に対して作業します。

validates :is_seventeen?

def is_seventeen?
   DateOfBirth = Time.parse ("#{ dob_year + dob_month + dob_day } " )
   DateOfBirth > Time.now - 17.years ? true : false
end

ヒント..

特定の回答以外では、DateOfBirth フィールドは 1 つのフィールドにすぎず、これらの 3 つの選択はテーブル内の 1 つの列を表すことをお勧めします。

于 2012-08-02T10:16:57.060 に答える