2011-12-05 2 views
6

레일 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 –