2010-06-15 74 views
0

我想我的搜索形式返回以下網址提交後:經過查找的字符串簡單的搜索打通

/anuncios/buscar/the_text_I_searched

我的格式如下:

<% 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 %> 

我的路線爲SEARCH_PATH行是這樣的:

map.search '/anuncios/buscar/:str_search', :controller => 'announcements', :action => 'search' 

好吧,這將工作,如果我手動鍵入我想在瀏覽器中的網址,但肯定,如果你看看錶單的網址,你會發現一個「:txtSearch」參數,這是不給我實際提交表單時文本字段的值。這就是我想要得到的!

有人能幫助我嗎?

回答

2

你應該能夠做到這一點的控制器:

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

This works。現在我有一個問題...我注意到,如果查詢字符串參數爲空,讓我們說我輸入「/ anuncios/buscar」(沒有任何字符串搜索)它會引發錯誤,因爲它找不到要執行的動作。我能做些什麼來捕捉這個動作?(如果沒有在url中指定要搜索的字符串,我想顯示所有的通告)。 – 2010-06-15 15:00:41

+0

檢查'params [:txtSearch] .blank?'並渲染包含搜索表單的頁面(如果是),否則請執行重定向。 – 2010-06-15 15:11:37

1

聽起來像是你將需要使用新的形式提交到另一個動作,格式化搜索字符串,然後redirect_to的搜索頁面搜索字符串。