在我的 search_field_tag 中调用 search_path 时出现“无路由匹配”错误。搜索表单在我的标题中,这个想法只是为了能够对事件进行搜索。
这是 routes.rb 中的路线:
match '/events/search/:query' => 'events#search', :as => "search"
这是搜索表单的代码。
<%= form_tag search_path, :method => :get do %>
<%= text_field_tag :query, params[:query] %>
<%= submit_tag "search", :name => :nil %>
<% end %>
(如何确保当我提交此表单时,它将提交到 /events/search/:query?:query 是 search_field_tag 中的值)
这是我的 events_controller 中的代码
def search
@search_q = params[:query]
@events = Event.search @search_q #uses thinking sphinx
respond_with @events
end
我还创建了 /views/events/search.html.erb
我很确定错误来自我说 search_path 的搜索表单中的行。其他一切似乎都完全按照我的预期工作,但是,例如,如果我访问 /events/search/someterm 它完全按照我的预期工作。只需插入搜索表单并提交到 events#search。有什么帮助吗?谢谢!