2010-06-15 3 views
0

나는 다음과 같은 URL을 반환하는 내 검색 양식을하고 싶습니다 GET :간단한 검색 양식을 통해 후 제출

/anuncios/buscar을/

을 the_text_I_searched 내 양식은 다음이다 :

: search_path의에 대한

<% form_for :announcement, :url => search_path(:txtSearch) do |f| %> 
<div class="searchBox" id="basic"> 
    <%= text_field_tag :txtSearch, params[:str_search].blank? ? "Busc&aacute; tu curso r&aacute;pido y f&aacute;cil." : params[:str_search], :maxlength=> 100, :class => "basicSearch_inputField", :onfocus => "if (this.value=='Busc&aacute; tu curso r&aacute;pido y f&aacute;cil.') this.value=''", :onblur => "if(this.value=='') { this.value='Busc&aacute; tu curso r&aacute;pido y f&aacute;cil.'; return false; }" %> 
    <div class="basicSearch_button"> 
    <input type="submit" value="BUSCAR" class="basicSearch_buttonButton" /> 
    <br /><a href="#" onclick="javascript:jQuery('#advance').modal({opacity:60});">Busqueda avanzada</a> 
    </div> 
</div> 
<% end %> 

내 루트 '라인이있다

브라우저에 원하는 URL을 수동으로 입력하면 작동하지만 양식의 URL을 보면 ": txtSearch"매개 변수가 나에게 실제 URL을 제공하지 않습니다. 양식을 제출할 때 텍스트 필드의 값. 그리고 그것이 제가 얻고 자하는 것입니다!

아무도 도와 드릴 수 없습니까?

답변

2

당신은 컨트롤러에서이 작업을 수행 할 수 있어야한다 : 새를 사용하여 검색 페이지 redirect_to 다음, 다른 행동 양식을 제출 검색 문자열을 포맷하고해야합니다 같은

def search 
    ... 
    redirect_to search_path(:str_search => params[:txtSearch]) 
end 
+0

이것은 작동합니다. 이제 질문이 있습니다 ... querystring 매개 변수가 null 인 경우 "/ anuncios/buscar"(검색 할 문자열이 없음)를 입력하면 실행 할 작업을 찾을 수 없기 때문에 오류가 발생합니다. . 이 작업을 수행하려면 무엇을해야합니까? (검색 할 문자열이 URL에 지정되지 않은 경우 모든 발표 내용을 표시하고 싶습니다.) –

+0

'params [: txtSearch] .blank?'를 확인하고 검색 폼이있는 페이지를 렌더링하십시오. 그렇지 않으면 리디렉션을 수행하십시오. –

1

이 소리 검색 문자열.

관련 문제