2012-10-04 12 views
5

बहुत आसान सवाल है, लेकिन यह काम नहीं कर सकता !! मैं यह सुनिश्चित करने के लिए जन्म फॉर्म की तारीख बना रहा हूं कि उपयोगकर्ता 18 वर्ष से अधिक हो तो साइन अप कर सकता है। मुझे एक तिथि_ चयन है, और मैं शुरुआत वर्ष की शुरुआत कर रहा हूं, लेकिन मैं अंत वर्ष कैसे सेट करूं ताकि यह 18 साल पहले है? मैं मॉडल में भी वैधकर्ताओं का उपयोग करने जा रहा हूं, लेकिन नहीं चाहता कि कोई व्यक्ति पहली जगह गलत जानकारी दर्ज कर सके।रेल - सेट तिथि निर्धारित करें 18 साल पहले

मैंने पूरी तरह से देखा है, लेकिन केवल समय का उपयोग करने के तरीके के बारे में जानकारी प्राप्त कर सकते हैं। वैधकर्ताओं के साथ, जिसे मैंने पहले ही सॉर्ट किया है, फॉर्म में नहीं।

या वैकल्पिक रूप से, जो बेहतर हो सकता है - क्या पहले दो आइटम (दिन महीने) के लिए डेट_इलेक्ट ड्रॉपडाउन और वर्ष के लिए टेक्स्ट-बॉक्स होने का कोई तरीका है? इन पंक्तियों के साथ कुछ:

<%= 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 => %> 

धन्यवाद !!

उत्तर

3

Time.now.year - 18 

या

Date.today.year - 18 
+1

की कोशिश की है कि - इसके साथ "समय के साथ Fixnum की तुलना में विफल रहा है" ऊपर आता है। मैंने जो कुछ भी सोच सकता है उसके हर बदलाव की कोशिश की है - क्या यह सुविधा रेल या कुछ में समर्थित नहीं है !? – ecs

+0

आप सही हैं, क्षमा करें - मैंने समाधान समायोजित किया है। –

+0

बस यह भी पता चला! आपकी मदद के लिए धन्यवाद: 0) – ecs

2

this page पर जवाब मिला की कोशिश करो। बस इसे 5 के बजाय -18 के लिए बदल दिया:

<%= f.date_select :date_of_birth, :order => [:day, :month, :year], :start_year => 1900, :end_year => Time.now.year - 18 %> 
2

तुम भी कर सकते हैं:

18.years.ago.year 
संबंधित मुद्दे