2011-01-02 3 views
2

내가 (각각의 모델에 accepts_nested_attributes_for 사용) 중첩 된 형태를 갖는다 :어떻게 레일 3 폼 매개 변수를 배열로 전달합니까?

<%= form_for(:technician, :url => {:controller => 'pos', :action => 'create_ticket'}) do |f| %> 
    <%= f.fields_for :service do |s| %> 
     <%= s.text_field :name %> 
     <%= s.text_field :name %> 
     <%= s.text_field :name %> 
     <%= s.text_field :name %> 
    <% end %> 
<% end %> 

나는 하나의 s.text_field이있는 경우이 잘 작동합니다. 그러나 일단 text_fields를 추가하면 올바르게 실행되지 않습니다. 소스 코드를 보면 ID와 이름이 6 개 모두 동일합니까?

어떻게 이러한 매개 변수를 배열에 넣을 수 있습니까? [나는이처럼 그들을 분리 할 수 ​​있도록 :]

service1 = Service.named(params[:technician][:service][1][:name]) 

(내가 railscasts 에피소드 (192)에 설명 된 방법을 시도했지만, 그 중 하나가 작동하지 않았다).

시행 착오의 시간, 나는 작동 뭔가를 해킹 한 후

답변

0

(하지만 당신은 더 나은, 더 웅변하는 방법이 있다면 알려 주시기 바랍니다) :보기

:

<%= form_for(:technician, :url => {:controller => 'pos', :action => 'create_ticket'}) do |f| %> 
    <% for @i in 1..6 do %> 
    <%= f.fields_for "services[#{@i}]" do |s| %> 
    <% end %> 
    <% end %> 
<% end %> 

에서 컨트롤러 :

for i in 1..6 do 
     @service = Service.named(params[:technician][:services][i.to_s][:name]).first 
end 

당신이 문자열

로 난을 설정해야합니다
관련 문제