我有一个搜索表单,但是当我点击搜索按钮时,它没有获得正确的网址:
<%= form_for search_leads_path, method: :get do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search" %>
<% end %>
应该转到/leads/search
,但它仍然在/leads
佣金路线:
....
search_leads GET /leads/search(.:format) leads#search
leads GET /leads(.:format) leads#index
....
谁有好主意?提前谢谢!
答案 0 :(得分:2)
尝试这样做 -
第一个参数应该是对象,然后定义您的自定义URL。
<%= form_for(:search, url: search_leads_path, method: :get) do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search" %>
<% end %>
了解更多信息,请点击此处 http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for
答案 1 :(得分:1)
form_for
期望第一个参数是资源,例如@user
。这适用于Restful路线。但由于这是一种自定义路线,您应该使用form_tag
代替。
尝试将表单逻辑更新为以下内容:
<%= form_tag search_leads_path, method: :get do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search" %>
<% end %>
有关详细信息,请参阅FormTagHelper#form_tag。