2011-09-07 3 views
2

나는 레일을 배웠고 지금이 문제로 하루 종일 고생하고 있으며 어떻게 작동하는지 알아낼 수 없습니다. 내 양식에 여러 요소를 선택할 수있는 선택 상자가 필요합니다. 나는이 코드로 작업 한이 잘 작동이 HTML 생산form multiple select

<div class="field"> 
<%= f.label :products %><br /> 
<%= f.select :products, {"A"=>1, "B"=>2, "C"=>3, "D"=>4},{},:size=>5,:multiple=>true %> 
</div> 

:

<div class="field"> 
<label for="script_products">Products</label><br /> 
<select id="script_products" multiple="multiple" name="script[products][]" size="5">   
<option value="1">A</option> 
<option value="2">B</option> 
<option value="3">C</option> 
<option value="4">D</option></select> 
</div> 

은 내가 알아낼 수있는 것은 결과가/전송 저장 취득 방법입니다. '1'- - '이'- '3'

나는 인쇄 할 경우 --- : 나는 단순히 인쇄 할 경우 "쇼"행동에 대한 내 관점에서, :

제품 : 제품을 나는이 얻을 : products.inspect 나는이 얻을 :

제품 : "--- \ N- '1'\ N- '2'\ N- '3'\ n"

와 클래스는 문자열입니다. 나는 그것이 배열로 저장 될 것이라고 생각 하겠지만, 나는 그것을 작동시킬 수 없다. 나는 대시 또는 개조가 어디서 왔는지 모른다.

+0

'params [: script] [: products]'결과를 출력하고 있습니까? – nathanvda

+0

나는 이렇게하고있다 : <% = @ script.products %> –

+0

이것은 발판이 생성 한 코드이다. 원래는 새보기에서 텍스트 필드 였고 여러 선택 상자로 변경했습니다. 그래서 배열을 저장하고 싶다는 것을 반영하기 위해 모델을 변경해야한다고 생각합니까? 그러나 정확하게 모르겠습니다. –

답변

0

모델에 has-many 관계로 옵션을 추가하는 것이 좋습니다. 따라서 당신은 그들을 반복하고 첨부하고 (IMO) 더 좋은 방법으로 여러 선택에 참여시킬 수 있습니다.

내 모델에서 같은 일을 할 것입니다 :

has_many :special_options 

를 내보기에서 :

f.select :special_options, :multiple => true 

이 직렬화하고이를 저장하기 전에 개체를 역 직렬화해야하는 문제를 방지합니다.