我有一个搜索功能,允许用户搜索项目。从生成的列表中,用户可以将项添加到列表中。从列表中添加项目后,页面将重新加载,用户将返回其当前搜索列表。但是,目前,如果用户没有搜索任何内容,只添加列表顶部的项目(例如,从' A开始),当页面重新加载时,它在网址中包含空白搜索查询。我知道为什么,这是因为这一行
redirect_to admin_job_job_products_path(@job, search_term: params[:search_term])
我想让重定向路径中的最后一个参数成为条件路径,这样,如果说:search_term == nil || == "" || " "
,则redirect_to只包含第一个参数。
我最好如何做到这一点?
提前致谢!
答案 0 :(得分:2)
你可以这样做:
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, search_term: params[:search_term].presence)
参考文献:
.present?
method documentation .blank?
method documentation 答案 1 :(得分:1)
MrYoshiji的第二个例子可能不起作用,但你可以简短地写出这个原因:
redirect_to admin_job_job_products_path(@job, search_term: params[:search_term].present? ? params[:search_term] : nil)
因此,如果结果为nil
,则rails不会在网址中包含该参数