2014-02-13 2 views
2

이것은 가짜 질문 일 수 있습니다. 내가 선택한 것들로 양식을 제출 내가Select2를 사용하여 레일스에 ID를 전달하십시오.

"thing_ids"=>"[],3,2" 

즉, 초기 값 (빈 대괄호)를 받고있을 때 다음과 같은 선택 2 설정

jQuery('#mymodel_thing_ids').select2 
    multiple: true 
    placeholder: "Select things" 
    minimumResultsForSearch: -1 
    ajax: 
    url: "/things.json" 
    dataType: "json" 
    results: (data, page) -> 
     results: data 
    formatResult: (data) -> data.name 
    formatSelection: (data) -> data.name 

으로 폼에 다중 값 필드가 및 선택한 ID가 입니다. 하지만 다음과 같이하고 싶습니다

"thing_ids"=>"[3,2]" 

Select2로 가능합니까? 그리고 내가 뭘 잘못하고있어?

UPDATE

입력 요소를 생성 할 때 시작 부분에서 괄호 값 = ""를 이용해 방지한다.

+0

이'data.serialize()'를 시도하십시오. https://api.jquery.com/serialize/ –

답변

3

문제는 Select2가 항목의 문자열 목록을 다시 보냅니다. "thing_ids" => "1,2,3". 어떻게 이런 식으로 선택 2를 사용할 때 내가 할 것은이 같은 모양 thing_tokensthing_tokens=에 대한 접근 방법, 만드는 것입니다 : 양식에

def thing_tokens 
    thing_ids.join(",") 
end 

def thing_tokens=(token_string) 
    self.thing_ids = token_string.split(",") 
end 

다음을, 당신은 대신 :thing_tokens에 대한 입력이 만들어 줄게 thing_ids. Rails 4를 사용한다면 컨트롤러에 :thing_tokens도 허용해야합니다.

+0

이 답변은 실제로 값을 문자열로 만들어서 처음부터 값에서'[]'를 제거함으로써 문제를 해결합니다. – zode64

+0

입력 값을 빈 문자열 (예 : )으로 설정하면 이러한 중괄호를 피할 수 있습니다. –

관련 문제