如何让跨页面搜索栏提交后重定向至电影索引页?
问题:跨页面搜索栏重定向至电影索引页
我需要创建一个可在任意页面使用的搜索栏,用于检索电影数据库中的条目。目前该搜索栏仅在电影索引页能正常工作,在其他页面提交搜索时,只会刷新当前页面并将搜索参数添加至路径。请问如何实现提交搜索时重定向至电影索引页?
现有代码:
<form class="d-flex"> <%= form_tag movies_path, method: :get do %> <%= text_field_tag :search, params[:search], class:"form-control me-2", placeholder:"Search" %> <%= submit_tag "Search", :title => nil, class:"btn btn-outline-primary" %> <% end %> </form>
解决方法:
问题出在你嵌套了两层<form>标签——外层原生HTML的form没有指定提交地址,导致非索引页提交时默认使用当前页面URL。正确的做法是去掉外层form,把样式class加到Rails的form_tag参数里:
<%= form_tag movies_path, method: :get, class: "d-flex" do %> <%= text_field_tag :search, params[:search], class:"form-control me-2", placeholder:"Search" %> <%= submit_tag "Search", title: nil, class:"btn btn-outline-primary" %> <% end %>
修改后,form_tag会生成一个指向movies_path的完整表单,无论在哪个页面提交搜索,都会自动跳转到电影索引页并携带?search=xxx的搜索参数,和索引页的搜索行为完全一致。
内容的提问来源于stack exchange,提问作者JMS
相关产品推荐
相关产品推荐

