2012-01-11 3 views
0

10 개의 양식 필드가 있으며 각 필드 옆에 숫자 1부터 10까지 순차적으로 추가하고 싶습니다. 문제는 코드가 이미 고리. 부분 내부에 있으며 부분에는 컬렉션이 전달됩니다. Ruby on Rails 양식에서 일련의 숫자를 만드는 방법

<%= fields_for "list", f do |f| %> 
    <!-- I want 1, 2, etc to appear here depending on the iteration. --> 
    <%= f.label :name %> 

나는 <%= i += 1 %>를 사용하여 시도하지만 정의되지 않은 i 때문에 작동하지 않습니다. i을 정의하면 동일한 번호로 재설정되기 때문에 아무런 차이가 없습니다. 어떤 아이디어?

답변

4

레일스는 partialname_counter이라는 로컬 변수를 자동으로 정의합니다. 여기서 분명히 "partialname"은 부분적인 이름입니다. 따라서 부분이 호출되면 _list_item.html.erb이처럼 쓸 수있다 :

<%= fields_for "list", f do |f| %> 
    <%= list_item_counter + 1 %> 
    <%= f.label :name %> 
<% end %> 

(카운터가 0에서 시작하기 때문에 + 1은 물론있다.)

그냥 브라우저가 할 수 있도록하는 것입니다 또 다른 옵션을 뷰에서

:

<ol> 
    <%= render :list_item, :collection => @some_items %> 
</ol> 
정렬 된 목록을 사용하여 당신의 번호

... 그리고 부분에 :

<%= fields_for "list", f do |f| %> 
    <li> 
    <%= f.label :name %> 
    </li> 
<% end %> 

이 옵션은 아마 더 의미이며,리스트는 CSS에서 스타일 쉽다.