form_for 没有得到正确的路线

form_for doesn't get correct routes

我有一个搜索表单,但是当我点击搜索按钮时,它没有得到正确的 url:

<%= form_for search_leads_path, method: :get do %>
   <%= text_field_tag :search, params[:search] %>
   <%= submit_tag "Search" %>
<% end %>

它应该去 /leads/search,但它仍在 /leads

rake 路线:

....
      search_leads GET    /leads/search(.:format)                                 leads#search
             leads GET    /leads(.:format)                                        leads#index
....

谁有好主意?提前致谢!

尝试这样做 -

第一个参数应该是对象,然后定义您的自定义 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

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