Rails 3 vs Rails 2“狂野控制器”路由

发布于 2024-10-16 07:25:11 字数 984 浏览 1 评论 0原文

我试图让我的 Rails 3 项目自动解析命名空间控制器,类似于 Rails 2 的行为。例如(Rails 2):

$ rails pathtest && cd pathtest
$ script/generate controller First
$ script/generate controller first/second
$ script/generate controller first/second/third
$ script/server

请求:

  • /first 路由到第一个控制器
  • /first/second 路由到第二个控制器
  • /first/second/third 路由到第三个控制器

    但是,Rails 3 使用“野生控制器”路径产生不同的路由。

    $rails 新路径测试 &&光盘路径测试
    $rails 首先生成控制器
    $ Rails 首先/第二生成控制器
    $rails 生成控制器第一/第二/第三
    
    ## 配置/routes.rb
    Pathtest::Application.routes.draw 做
      匹配 ':controller(/:action(/:id(.:format)))'
    结尾
    
    $ 导轨服务器
    

    请求:

  • /first 路由到第一个控制器
  • /first/second 路由到first#second
  • /first/second/third 路由到first#second :id => '第三个'

    我开始认为命名空间控制器的自动解析不再是这样了?有没有人找到一种方法来自动解析这样的命名空间控制器?

    谢谢!

  • I'm trying to get my Rails 3 project to automatically resolve namespaced controllers, similar to the Rails 2 behaviour. For example (Rails 2):

    $ rails pathtest && cd pathtest
    $ script/generate controller First
    $ script/generate controller first/second
    $ script/generate controller first/second/third
    $ script/server
    

    Requests to:

  • /first routes to first controller
  • /first/second routes to second controller
  • /first/second/third routes to third controller

    But, Rails 3 yields different routing using the 'wild controllers' path.

    $ rails new pathtest && cd pathtest
    $ rails generate controller First
    $ rails generate controller first/second
    $ rails generate controller first/second/third
    
    ## config/routes.rb
    Pathtest::Application.routes.draw do
      match ':controller(/:action(/:id(.:format)))'
    end
    
    $ rails server
    

    Requests to:

  • /first routes to first controller
  • /first/second routes to first#second
  • /first/second/third routes to first#second :id => 'third'

    I'm starting to think that kind of automatic resolution of namespaced controllers isn't the way anymore? Has anyone found a way to automatically resolve namespaced controllers like this?

    Thanks!

  • 如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(1

    野生奥特曼 2024-10-23 07:25:11

    试试这个:

    Pathtest::Application.routes.draw do
      resources :first do
        resources :second do
          resources :third
        end
      end
    end
    

    Try this:

    Pathtest::Application.routes.draw do
      resources :first do
        resources :second do
          resources :third
        end
      end
    end
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文