반응형
웹페이지를 만들면서 많이 사용하게 되는 드롭다운 리스트를 루비 온 레일즈에서는 아래와 같은 방법으로 많이 사용합니다.

collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
포럼들을 여기 저기 에서 읽어 보다 보니 Collection_Select 에서의 onChnage 관련해서 질문이 많이 올라오길래 잠시 정리해 봅니다.

Collection_Select (출처: http://api.rubyonrails.org/ )
object : 현 모델의 객체입니다.
method : 현 모델에서 사용하는 함수나 테이블의 컬럼 이름 입니다.
collection : 드롭다운 리스트에 뿌릴 멤버를 들고 있는 컬렉션입니다.
value_method : 컬렉션의 멤버이자 option value 값입니다.
text_method : 컬렉션의 멤버이자 드롭다운 리스트에 보이는 글자 입니다.
options = {} : :prompt :include_blank 값을 넣습니다.
html options={} : 자바 스크립트나 html 옵션을 넣을 수 있습니다.

예) 아래 두개의 문장 모두 같은 결과를 냅니다.
1) <%= collection_select :productorigin_form, "national_id", @national, :id, :NationName, {:prompt => "Country Select"}, {:onchange=> "alert(id)"} %>
2) <%= productorigin_form.collection_select "national_id", @national, :id, :NationName, {:prompt => "Country Select"}, {:onchange=> "alert(id)"} %>

이렇게 하면 아래와 같은 html 이 만들어지며 나라를 선택할때 마다 "product_new_productorigin_attributes__national_id" 의 메세지 박스가 뜹니다.
<select id="product_new_productorigin_attributes__national_id"
name="product[new_productorigin_attributes][][national_id]" onchange="alert(id)">
<option value="">Country Select</option><option value="1">에티오피아</option>
<option value="2">케냐</option>
<option value="3">브라질</option>
<option value="4">콜럼비아</option>
<option value="5">과테말라</option>
<option value="6">멕시코</option>
<option value="7">페루</option></select>


반응형

+ Recent posts