6

非常に単純な質問ですが、うまくいかないようです!! ユーザーが 18 歳以上の場合にのみサインアップできるようにするために、生年月日フォームを作成しています。 18年前ですか。モデルでもバリデーターを使用しますが、そもそも誰かが間違った情報を入力できるようにしたくありません。

私はすべてを見てきましたが、フォーム自体ではなく、既にソートしたバリデーターで time.ago を使用する方法に関する情報しか見つけることができません。

または、代わりに、どちらが良いかもしれません - 最初の 2 つの項目 (日と月) の date_select ドロップダウンと、年のテキスト ボックスを使用する方法はありますか? これらの行に沿ったもの:

<%= f.date_select :date_of_birth, :order => [:day, :month] %><%= f.text_field :date_of_birth.year, :length => 4 %>

これは私がこれまでに持っているものです:

<%= f.label :date_of_birth %><br />
<%= f.date_select :date_of_birth, :order => [:day, :month, :year], :start_year => 1900, :end_year =>  %>

ありがとう!!

4

3 に答える 3

3

このページで答えを見つけました。+5 ではなく -18 に変更しました。

<%= f.date_select :date_of_birth, :order => [:day, :month, :year], :start_year => 1900, :end_year => Time.now.year - 18 %>
于 2012-10-04T13:15:39.437 に答える
3

試す

Time.now.year - 18

また

Date.today.year - 18
于 2012-10-04T13:08:15.903 に答える
2

次のこともできます。

18.years.ago.year
于 2014-06-19T15:15:37.573 に答える