2017-03-10 2 views
0

에서보기에 결합하지 :unit_id select 태그값은 내가이 선택 태그가 컨트롤러

데이터를 읽고 가져 오려고했지만 다음을 시도해보십시오. 우리는 적절한 PARAM을 전달하면이 일을해야하므로

@floor_id = params[:floor_id] 
@project = Project.find(params[:project_id]) 
@proposed_customer = ProposedCustomer.new 
@floor = ProjectFloorUnit.select_units(@project.id, @floor_id) 

셀렉트 단위 방법은 정적 값에 대한 작업 괜찮 다음 floor_id 항상

내 컨트롤러 방법은 다음과 같다 널 (null)를 수신하는 단계를 포함한다.

+0

무엇이'f'입니까? 모델 객체에서'floor_id'를 사용하지 않으면'f.select' 대신'select_tag'을 사용하는 것이 더 좋습니다 –

+0

첫 번째 select 태그에서 옵션을 선택하면 자동으로 서버에 요청을 보내지 않습니다 명시 적으로 지정하지 않는 한 –

+0

서버에 API 호출을 푸시해야한다는 의미입니까? – nifCody

답변

2

페이지가 완전히로드되면 서버와의 연결이 끊어집니다. 따라서 별도의 요청을 시작해야하며 요청의 응답은 두 번째 드롭 다운에서 값 또는 원하는 것을 변경합니다.

$("#floorIDSelectTag").change(function() { 
    var floorID = $(this).val(); 

    $.ajax({ 
    type: '', 
    url: '', 
    // other things 
    success: function(data) { 
     // Here, you need to use the data from the request's response, 
     // and update the things in 2nd dropdown 
    } 
    }); 
}); 

당신이 AJAX 호출에서 사용하는 URL 될 것입니다 :

새 요청을 보낼 jQuery를 사용할 수 있습니까? 이를 위해서는 config/routes.rb 파일에 새 경로를 만들고 컨트롤러에 새 작업을 작성한 다음 JSON 형식으로 데이터를 다시 전송해야합니다. 다음과 같은 것 :

def get_data_for_floor_id 
    @floor_id = params[:floor_id] 
    # Do the other stuff, and prepare the response you need to send. 
    respond_to do |format| 
    format.json { } 
    end 
end