2014-07-21 96 views
2

我有一個搜索功能,它允許用戶搜索項目。從生成的列表中,用戶可以將項目添加到列表中。從列表中添加項目後,頁面重新加載並且用戶返回到其當前搜索列表。但是,目前,如果用戶沒有搜索任何內容,並且只是添加列表頂部的項目(例如從'A開始),那麼當頁面重新加載時,它會在url中包含空白搜索查詢。我知道爲什麼,那是因爲這條線在rails中有條件地包含參數在url路徑中

redirect_to admin_job_job_products_path(@job, search_term: params[:search_term]) 

我想要做的最後一個參數在重定向路徑的條件之一,這樣,如果說:search_term == nil || == "" || " "然後redirect_to的僅包括第一個參數。

我該如何做到最好?

提前致謝!

回答

3

你可以這樣做:

if params[:search_term].present? 
    redirect_to admin_job_job_products_path(@job, search_term: params[:search_term]) 
else 
    redirect_to admin_job_job_products_path(@job) 
end 

或者

redirect_to admin_job_job_products_path(@job, params[:search_term].present? search_term: params[:search_term] : nil) 

參考文獻:

0

MrYoshiji的第二個例子可能不會工作,但你可以把它寫簡短這是爲什麼:

redirect_to admin_job_job_products_path(@job, search_term: params[:search_term].present? ? params[:search_term] : nil) 

因此,如果其結果將是nil軌將不包括PARAM在網址