Helpex - Trao đổi & giúp đỡ Đăng nhập
6

Câu hỏi rất đơn giản, nhưng dường như không thể giải quyết được !! Tôi đang tạo biểu mẫu ngày sinh, để đảm bảo rằng người dùng chỉ có thể đăng ký nếu họ trên 18 tuổi. Tôi đã có date_select và tôi ổn khi đặt năm bắt đầu, nhưng làm cách nào để đặt năm kết thúc nó là 18 năm trước? Tôi cũng sẽ sử dụng trình xác thực trong mô hình, nhưng không muốn ai đó có thể nhập sai thông tin ngay từ đầu.

Tôi đã xem xét tất cả, nhưng chỉ có thể tìm thấy thông tin về cách sử dụng time.ago với trình xác thực, mà tôi đã sắp xếp, không phải ở dạng chính nó.

Hoặc, cách khác, có thể tốt hơn - có cách nào để có một menu thả xuống date_select cho hai mục đầu tiên (ngày & tháng) và một hộp văn bản cho năm không? Một cái gì đó dọc theo những dòng này:

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

Đây là những gì tôi có cho đến nay:

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

Cảm ơn!!

6 hữu ích 0 bình luận 4.3k xem chia sẻ
3

Cố gắng

Time.now.year - 18

hoặc

Date.today.year - 18
3 hữu ích 2 bình luận chia sẻ
3

Tìm thấy câu trả lời trên trang này . Chỉ cần thay đổi nó thành -18 thay vì +5:

<%= f.date_select :date_of_birth, :order => [:day, :month, :year], :start_year => 1900, :end_year => Time.now.year - 18 %>
3 hữu ích 0 bình luận chia sẻ
2

Bạn cũng có thể làm:

18.years.ago.year
2 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ ruby-on-rails date datetime , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading