2011-12-05 15 views
6

Sto usando Rails 3.1. Ecco il codice che ho che chiede all'utente di inserire mese e anno di scadenza della carta di credito.Come visualizzare la selezione mese e anno per la carta di credito

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

Sopra il codice funziona. Tuttavia, il problema è che se si verifica un errore di convalida, la scadenza e il mese selezionati vengono ripristinati.

Ho provato f.select_month ma non è supportato.

risposta

14

provare qualcosa di simile:

<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

C'è un modo per capovolgere l'ordine in cui compaiono? L'anno si presenta per primo e poi i mesi – Edmund

+1

È possibile impostare l'ordine con ': order'. Ad esempio ': order => [: month,: year]'. http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-date_select –

Problemi correlati