2011-12-05 12 views
6

मैं रेल 3.1 का उपयोग कर रहा हूं। यहां मेरे पास कोड है जो उपयोगकर्ता को क्रेडिट कार्ड की समाप्ति महीने और वर्ष में प्रवेश करने के लिए कहता है।क्रेडिट कार्ड के लिए माह और वर्ष चयन कैसे प्रदर्शित करें

<div class="field"> 
    <%= f.label :expires_on, 'Expiration date' %> 
    <br /> 
    <%= select_month nil, {add_month_numbers: true}, {name: 'creditcard[month]', id: "card_month"} %> 
    <%= select_year nil, {start_year: Date.today.year, end_year: Date.today.year+15}, {name: 'creditcard[year]', id: "card_year"} %> 
    </div> 

कोड के ऊपर काम करता है। हालांकि मुद्दा यह है कि यदि सत्यापन त्रुटि हुई तो चयनित समाप्ति और महीना रीसेट हो गया।

मैं f.select_month की कोशिश की लेकिन वह समर्थित नहीं है।

उत्तर

14

इस तरह की कोशिश कुछ:

<p> 
    <%= f.label :expires_on, 'Expiration date' %><br /> 
    <%= f.date_select :expires_on, :discard_day => true, :start_year => Date.today.year, :end_year => (Date.today.year+10), :use_month_numbers => true %> 
</p> 
+0

वहाँ जिस क्रम में वे दिखाई देते हैं फ्लिप करने के लिए एक रास्ता है? वर्ष पहले दिखाता है, और उसके बाद महीनों – Edmund

+1

आप ऑर्डर को 'ऑर्डर' के साथ सेट कर सकते हैं। उदाहरण के लिए ': order => [: month,: year]'। http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-date_select –

संबंधित मुद्दे