2010-11-29 2 views
4

와 내가 보이는 collection_select있어 검색과 많은 독서 후 레일 2.1.2와 collection_select : onchange를하고 :

<%= collection_select :selection, :level, User::LEVELS, :to_s, :to_s,{:with => "this.value"}, 
     {:onchange => remote_function(
      :url => {:action => "updatelevel", :controller => "user", :id=> user.id}) 
     } %> 

과 같이 그러나 그 내 컨트롤러에 선택한 값을 전달하지 내가 얻은 유일한 것은 아무 것도 아니다.

나는 다음과 같은 차이점의 조합에 대해 망설였다. : 테스트 문자열을 사용해야하고 시도해야하지만 아무 것도하지 않는 것 같습니다.

나는 바보 같은 것을 놓치고 있습니까? 내가보고 있어야하는 "결정적인"예가 있습니까?

레일스가 너무 빨리 변하기 때문에 게시판이 어떤 버전인지, collection_select에서 읽은 API는 내가 옵션 해시에 넣을 수있는 내용이 무엇인지 알 수 없습니다.

답변

5

레일즈 2.3.10을 실행하는 앱에서 이것을 확인했습니다. 잘못된 지점에 'with'매개 변수가 있으면 콜렉션 선택이 아닌 원격 기능에 대한 옵션입니다. 또한이 방식으로 값을 전달하면 { "134523456"=> ""}처럼 보이는 params 해시를 얻을 수 있습니다. 이는 아마도 원하는 것은 아닙니다. JavaScript 중심의 문자열에 'with'값 결과가 있어야합니다.

<%= collection_select :selection, :level, User::LEVELS, :to_s, :to_s, {}, 
     {:onchange => remote_function(
     :url => {:action => "updatelevel", :controller => "user", :id=> user.id}, 
     :with => "'level_id='+this.value" 
    ) 
    } 
%> 
관련 문제