【问题标题】:RESTful route overriden by named routeRESTful 路由被命名路由覆盖
【发布时间】:2012-06-22 11:27:29
【问题描述】:

在 Rails 中的 routes.rb 中定义资源时,我遇到以下问题:我的资源支持标准 CRUD 操作并具有自定义功能/路由,允许过滤。现在这个自定义路由匹配编辑路由并在实际 RESTful 路由之前跳转。

有没有办法确定 RESTful 路由的优先级以便它们首先匹配?

resources :items do
  get ':category(/:level)', :action => :filter, :on => :collection, :as => 'filter'
end

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    您应该只设置一个简单的获取路由(如果是 GET 请求)

    get 'filter', :to => "items#filter"
    

    如果您有任何问题,总有 RoR 指南 :)

    http://guides.rubyonrails.org/routing.html

    【讨论】:

    • 感谢您提供指向 RoR 指南的链接,我经常使用它们,但有时它们只是没有涵盖某些内容 - 或者我只是找不到它们。在您的解决方案中,我需要手动挑选参数,不是吗?
    • "在您的解决方案中,我需要手动挑选参数,不是吗?"。我真的不明白你想问什么。如果您询问如何获取控制器操作的参数,可以通过 params 帮助器轻松回答
    • 对不起,我对那个有点不清楚。你当然是对的,params 助手可以让我挑选出不同的参数。另一方面,我通过这条路线失去了 url_for 助手。愚蠢的我,第二次看它,我可以在路线前加上例如'filter',像这样:get 'filter/:category(/:level)', :action => :filter, :on => :collection, :as => 'filter'
    猜你喜欢
    • 1970-01-01
    • 2014-04-23
    • 2023-03-26
    • 2020-02-03
    • 1970-01-01
    • 2016-07-12
    • 2018-04-22
    • 2011-07-19
    • 1970-01-01
    相关资源
    最近更新 更多