2011-08-09 5 views
1

레일즈 2.3을 사용하여 배열에 대한 텍스트 필드 세트를 생성하려고합니다. 컨트롤러에 배열이 있습니다 (모델의 이 아니라 부분). 각 항목에 대해 텍스트 필드를 만들고 싶습니다. 배열은 같은 것입니다 : 다음레일에서 배열의 텍스트 필드

@ages = [1, 3, 7] # defaults 

, 내가 제출 한 경우 사용자의 값으로 채워진 배열을 값 1, 3, 7 내보기에 3 텍스트 필드를 생성하고,이 싶습니다.

나는 Google과 여기에 많은 자료를 발견했지만 아무 것도 저에게 효과가없는 것으로 나타났습니다. 나는 이것이 Rails에서 쉽다는 것을 확신한다 ...

+0

그래서 당신은 :

<% @ages.each do |age| %> <%= text_field_tag 'ages[]', age %> <% end %> 

그런 다음 당신은 제출에 컨트롤러의 모든 '나이'에 액세스 할 수 있습니다 각 값에 대해 text_field 및 text_area를 모두 원하십니까? – lulalala

+0

죄송합니다 ... 두 곳에 텍스트 입력란이 있어야합니다. 고정 ... 고마워! –

답변

10

레일즈는 이것을 쉽게 할 수있는 콜렉션을 직렬화 할 수있다.

당신처럼 입력 이름이 '필드 []'이보기에 같은 :

@ages = params[:ages] # ['1', '3', '7'] 
+0

무작위 질문. 왜 그렇습니까? 나이는 ControllerName_params가 아닌 params로 전달됩니까? –