2014-06-18 2 views
0

배열 열 (box_ids)이있는 모델이 있습니다. 내 견해로는 배열의 각 값에 대한 필드와 배열에 새 값을 추가 할 수있는 세 개의 추가 빈 필드가 있어야합니다. 이 일에 어떻게 가야합니까? 나는 다음과 같습니다 :레일 및 포스트 그레스 배열 열

<%= f.fields_for "box_ids[]", @shop do |bid| %> 
    <div class="form-group"> 
     <%= bid.label :box_id %> Box ID: <%= bid.text_field [WHAT HERE] %> 
    </div> 
    <% end %> 

이것이 올바른 접근 방법인지는 모르겠지만 어떤 경우에도 text_field에 제공 할 방법이 없습니다.

제안 사항?

편집 :

이 작동 :

<% @shop.box_ids.each do |bid| %> 
    <div class="form-group"> 
     <%= label_tag :box_id %> Box ID: <%= text_field_tag "box_ids[]", bid %> 
    </div> 
    <% end %> 
    <% 3.times do %> 
    <div class="form-group"> 
     <%= label_tag :box_id %> Box ID: <%= text_field_tag "box_ids[]" %> 
    </div> 
    <% end %> 

하지만 그건 컨트롤러에 특별한 처리가 필요합니다 - 그게 가능하다면 않도록하고 싶습니다.

+0

입찰가를 점검 할 수 있습니까? – emaillenin

+0

예 - ActionView :: Helpers :: FormBuilder입니다. – jriff

+0

bid.object는 Shop 클래스입니다. – jriff

답변

0
<%= f.fields_for "box_ids[]", @shop do |bid| %> 
    <div class="form-group"> 
     <%= bid.label :box_id %> Box ID: <%= bid.text_field :box_ids %> 
    </div> 
    <% end %> 
+0

제안 해 주셔서 감사합니다. 그러나 그것은 단지 다음을 제공합니다 : # jriff

+0

에 대해 정의되지 않은 메소드 '1'box_ids에 직접 입력하십시오. – emaillenin

+0

텍스트 필드에 {1,2,3}이 있습니다. – jriff