尽管已制定路线,但没有路线匹配

No route matches although route is made

我正在学习以下教程,https://www.dailysmarty.com/posts/how-to-add-search-functionality-into-a-rails-api-application .

在设法完成整个教程后,我发现没有匹配“/search”的路由。本教程没有说明如何做路线,因此我试图通过创建以下内容自己做一个:

    Rails.application.routes.draw do
      resources :search, only: [:search]
    end

更新:

根据教程,您需要访问 yoururl.com/search

那样的话,最好使用@jeremie

提供的方案
get '/search', to: 'search#search'

这将生成

             search GET    /search(.:format)               search#search

您使用的格式不正确。

only: 仅支持七个默认操作 -> 索引、显示、新建、创建、编辑、更新和销毁 more...

对于自定义路由,您需要将其更改为以下内容

Rails.application.routes.draw do
  resources :search, only: [] do
    get :search, on: :collection 
  end
end

这将生成以下路线

search_search_index GET    /search/search(.:format)        search#search

这不是你想要的。您需要这样的获取路线:

get '/your_route', to: 'your_controller#your_action'

因此,在您的情况下,搜索不是一种资源。所以我会使用:

get '/search', to: 'search#search'

您可以在 rails guide.

上找到有关路由的所有信息

希望对您有所帮助!