2011-12-05 115 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 –

相关问题