2011-12-05 27 views
6

Tôi đang sử dụng Rails 3.1. Đây là mã tôi yêu cầu người dùng nhập tháng và năm hết hạn thẻ tín dụng.Cách hiển thị lựa chọn tháng và năm cho thẻ tín dụng

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

Các công trình mã trên. Tuy nhiên, vấn đề là nếu có lỗi xác thực thì hết hạn và tháng đã chọn được đặt lại.

Tôi đã thử f.select_month nhưng không được hỗ trợ.

Trả lời

14

Hãy thử một cái gì đó như thế này:

<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ó cách nào để lật thứ tự mà chúng xuất hiện? Năm xuất hiện đầu tiên và sau đó là tháng – Edmund

+1

Bạn có thể đặt thứ tự bằng ': order'. Ví dụ ': order => [: month,: year]'. http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-date_select –

Các vấn đề liên quan