2011-12-05 20 views
6

Estoy usando Rails 3.1. Aquí está el código que tengo que le pide al usuario que ingrese el vencimiento de la tarjeta de crédito, mes y año.Cómo mostrar la selección de mes y año para la tarjeta de crédito

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

El código anterior funciona. Sin embargo, el problema es que si hubo un error de validación, se restablecen el vencimiento y el mes seleccionados.

Intenté f.select_month pero eso no es compatible.

Respuesta

14

intentar algo como esto:

<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

¿Hay una manera de darle la vuelta al orden en el que aparecen? Primero se muestra el año y luego los meses – Edmund

+1

Puede establecer el orden con ': order'. Por ejemplo ': order => [: month,: year]'. http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-date_select –

Cuestiones relacionadas