嘿伙计我的搜索栏有这个问题 - 当我没有输入任何关键字时,它仍会显示结果。如果搜索栏中没有关键字(即使搜索栏中只有空格),我怎么告诉它只是为了将其重定向到同一页面,直到有实际搜索内容为止?
这是我的代码:
-if !@movies.empty?
.row
.large-12.columns
h3="Results for '#{params[:query]}'"
table.movie_table
-@movies.each do |movie|
tr
td =link_to movie.title, movie_path(movie)
td =image_tag(movie.image_url)
-else
.row
.large-12.columns
h3="No results found for '#{params[:query]}'"
答案 0 :(得分:0)
您的视图中似乎正在测试@movies
。这大概是找到的对象的集合。
另一方面,您的<h3>
图例依赖于params[:query]
来显示所要求的内容。 (通常会将params[:query]
分配给控制器中的变量,或者 - 更好的是,将其作为本地传递 - 因为您尝试尽可能少地在视图中执行。)您似乎更喜欢测试params[:query]
,因为那将是用户提交查询的文本。
在您的控制器中使用redirect_to root_path if params[:query].blank?
(或任何其他_path
或_url
),而不是在查询为空格时让它呈现视图,这样做我认为您想要的。