2011-12-05 101 views
6

我正在使用Rails 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'設置訂單。例如':order => [:month,:year]'。 http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-date_select –

相關問題