2009-09-07 10 views
1

양식의 값을 기반으로 양식 제출 URL을 생성 할 수 있습니까? 본인은이 결과레일에서 양식 매개 변수의 URL 생성

map.make_model_search "client/:client_id/tags/search/make/:make/model/:model", :controller => "tags", :action => "make_model_search", :method => :get 

을 표시하려면 다음 사용하려는 경로를 만들기 위해 요청하는 탐색 양식을 작성하고 모델

<% form_tag make_model_search_path(:client_id => @client.id) do %> 
<%= select_tag :make, options_for_select(make_list) %> 
<%= select_tag :model, options_for_select(model_list) %> 
<%= submit_tag "Search" %> 
<% end %> 

하려고하지만 URL 이후 어떤 전에 생성 매개 변수가 전송됩니다.이 작업을 수행하는 방법을 모르겠습니다.

이 방법으로 수행해야하는 이유는이 경로에 "페이지/: 페이지"를 추가하여 결국 페이지 매김을 추가해야하기 때문입니다.

이것이 가능하지 않은 경우. params 객체를 파라미터는

이 날

감사합니다 같은 일을 할 수 있다는 그것은 나의 이해

"?client_id=ID&make=MAKE&model=MODEL" 

로 URL에없는 이유는 이해가 안 돼요!

답변

3

나는 또한

에게 그것은을 PARAMS이

로 URL에하지 왜? "CLIENT_ID = ID & 메이크업 = & 모델 = MODEL도하지"이해하지 못하는 것이 내 이걸 이해하면 내가 똑같은 일을 할 수있게 해준다.

form_tag에 대한 cumentation : POST 폼의 기본값에 대한

방법.

쿼리 문자열에 옵션이 전달되도록하려면 메서드 => "get"을 form_tag 옵션에 추가해야합니다.

+0

그건 의미가 있습니다. 나는 내 길에서 자동으로 그렇게 할 방법이 있었기 때문에 생각했다. 고맙습니다! – stellard

1

"client/: client_id/tags/search /"를 사용하는 것이 대부분 Rails가 경로 작업에 사용하는 REST 방식입니다. 이보기에서, 당신은 리소스 (예를 들어, 클라이언트)의 표현에 액세스하고 있습니다.

"? client_id = ID"방식은 일부 매개 변수를 보내는 것입니다.

첫 번째 경우에는 클라이언트의 표현을 명시 적으로 요구하는 반면, 두 번째 경우에는 무슨 일이 일어나는지 확실하지 않습니다. 정보를 표현하고 요청하는 더 간단한 방법입니다.

이제 질문에 나는 두 번째 사례에 대해 이야기하고 있다고 생각합니다. 당신이 GET 문 (양식 POST로 설정됩니다 이후)를 사용하여 PARAMS를 추가하려는 경우, 당신은 방법 PARAM 추가 할 수 있습니다 보조 노트로

form_tag make_model_search_path(:client_id => @client.id), :method => "get" 

을, 당신이 경로를 복잡 이상 생각합니다.(: 모델 : 메이크업) 당신의 컨트롤러에서 사용할 수 및 페이지 매김을 사용하려면합니다 (will_paginate 플러그인을 체크 아웃) 것입니다 그냥 PARAMS를 사용하려는 경우, 당신은 단지

"client/:client_id/search/", :controller => "tags", :action => "make_model_search", :method => :get 

귀하의 PARAMS 같은 것을 함께 일할 수 그것은 잘 작동합니다.

행운을 빈다.

참고 사항 : 경로는 실제로 이전에 생성되지 않습니다. "/ : client_id /", "/ : make"및 기타는 경로 엔진이 유형이 지정된 URL에 응답하는지 여부를 확인하기 위해 경로 엔진이 사용할 자리 표시 자의 역할을하여 변수를 할당 한 후 실행합니다.

관련 문제