문제

우리가 설계 한 형태로, 우리는 사용자가 한 번에 여러 상태를 선택할 수있는 "상태"필드가 있습니다. "상태"필드의 선택에 따라 채워야하는 "도시"필드가 있습니다. 한 상태 만 선택하면 "도시"필드의 값이 올바르게 채워집니다. 그러나 여러 상태가 선택되면 올바르게 표시되지 않습니다.

Ruby 솔루션을 제안하십시오.

도움이 되었습니까?

해결책

문제는 :with 당신의 표현 observe_field. document.getElementById('usa_states_').value 선택한 모든 값이 아닌 단일 값 만 반환합니다.

레일에 자동으로 이것을 처리 할 수있는 방법이 있는지 확실하지 않지만 하나의 솔루션은 쉼표로 분리 된 모든 선택한 값의 문자열을 구축하는 JavaScript 함수를 작성하는 것입니다. 예를 들어

function selectedValuesAsString(multiselect) {
    selectedValues = new Array();
    for (i = 0; i < multiselect.length; i++) {
        if (multiselect[i].selected) {
            selectedValues.push(multiselect[i].value);
        }
    }
    return selectedValues.join();
}

그런 다음 업데이트하십시오 :with :

:with => "'state='+selectedValuesAsString(document.getElementById('usa_states_')"

그런 다음 마지막으로 컨트롤러 작업 내부의 값을 분할하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top