【问题标题】:No route matches although route is made尽管已建立路线,但没有路线匹配
【发布时间】:2019-03-26 06:28:19
【问题描述】:

我正在关注以下教程,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

【问题讨论】:

    标签: ruby-on-rails search pg-search


    【解决方案1】:

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

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

    因此,就您而言,搜索不是一种资源。所以我会使用:

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

    您可以在rails guide 上找到所有有关路由的信息。

    我希望这会有所帮助!

    【讨论】:

    • 这是一个更好的解决方案
    • 感谢您的解决方案。对于那些也在学习本教程的人,我已经设法让它与这个解决方案一起工作,并在后面添加一个 :query。所以我使用了:get '/search/:query', to: 'search#search'
    【解决方案2】:

    更新:

    根据教程你需要访问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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多