2014-05-15 5 views
2

startMonth 및 endMonth 필드가 포함 된 데이터 모델이 있습니다. 나는 또한 다음 f.select 태그를 사용하여 올바르게 설정할 수 있지만 데이터를 편집 할 때 렌더링 된 드롭 다운은 db에 저장된 적절한 값을 반영하지 않습니다. f.select 태그를 잘못 설정 했습니까?f.select가 올바른 값으로 기본값 설정되지 않음

<div class="control-group"> 
    <%= f.label "Start Month", :class => 'control-label' %> 
    <div class="controls"> 
    <%= f.select :startMonth, options_for_select([['January' ,'1'],['February' ,'2'], ['March', '3'],['April' ,'4'], ['May', '5'],['June' ,'6'],['July' ,'7'], ['August', '8'],['September' ,'9'], ['October', '10'],['November' ,'11'], ['December', '12']]), class: "list-select" %> 
    </div> 
    <%= f.label "End Month", :class => 'control-label' %> 
    <div class="controls"> 
    <%= f.select :endMonth, options_for_select([['January' ,'1'],['February' ,'2'], ['March', '3'],['April' ,'4'], ['May', '5'],['June' ,'6'],['July' ,'7'], ['August', '8'],['September' ,'9'], ['October', '10'],['November' ,'11'], ['December', '12']]), class: "list-select" %>  
    </div> 
</div> 

데이터가이 드롭 다운을 사용하여 저장되면 데이터베이스에 올바르게 저장되고 내 표시 페이지에 올바른 값이 표시됩니다. 그러나 편집 페이지로 돌아 가면 드롭 다운이 저장된 값으로 기본 설정되기를 원합니다. 포함 할 것을 잊고있는 설정이 있습니까?

알렉스

답변

4

당신은 값을 미리 선택 options_for_select 방법에 두 번째 인수를 전달할 수 있습니다. 예를 들어, 모델 객체를 가정하는 것은 @object라는 인스턴스 변수에 의해 표현된다, 당신은 당신의 options_for_select에 두 번째 매개 변수로 @object.endMonth에 전달할 수 있습니다.

<%= f.select :endMonth, options_for_select([['January' ,'1'],['February' ,'2'], ['March', '3'],['April' ,'4'], ['May', '5'],['June' ,'6'],['July' ,'7'], ['August', '8'],['September' ,'9'], ['October', '10'],['November' ,'11'], ['December', '12']], @object.endMonth), class: "list-select" %> 

참고하십시오 @object.endMonth 값이 같은 데이터 형식으로 해결해야 옵션 값 -이 경우 월을 나타내는 숫자. 자세한 내용은 Rails Guide을 참조하십시오.

+0

화려한! 감사. –