【发布时间】:2017-03-23 11:30:41
【问题描述】:
我的 Rails 5 应用程序中有一个搜索控制器,如果搜索词为空白,我希望它返回一个状态为 400 的头部,否则搜索并呈现结果页面。
这是我的控制器...
def new
search_term = search_params[:search].downcase
head 400 and return if search_term.blank?
@search_results = Post.where("lower(title) LIKE ? OR link LIKE ?",
"%#{search_term}%",
"%#{search_term}%").
order("created_at DESC").
paginate(page: params[:page], per_page: 30)
if @search_results.empty?
flash.now[:information] = "No results found"
end
end
private
def search_params
params.require(:search).permit(:search)
end
我尝试调整 if 和 return 语法,但似乎没有任何效果。当我从没有搜索字符串的视图中单击搜索按钮时,它只会在控制器路径下呈现一个空白页面。我希望它只停留在同一页面上并且什么都不做。
【问题讨论】:
标签: ruby-on-rails