【问题标题】:Rails 3 Routing resources scoped to a usernameRails 3路由资源范围为用户名
【发布时间】:2010-11-22 18:10:44
【问题描述】:

我对 Rails 路由有基本的了解,但没有什么太高级的。到目前为止,我已经使用了基于 RESTful 资源的路由和一些自定义命名的路由。

我现在几乎完成了我的应用程序,我想制作一些漂亮的网址。

在我的应用中,每个用户都有很多页面。使 URL 看起来像 www.sitename.com/username/page_name 的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    这将路由到页面控制器的显示操作。参数哈希包括 :username 和 :page_name。

    match "/:username/:page_name" => "pages#show"
    

    记得把它放在最后,否则它会匹配几乎所有东西。

    【讨论】:

      【解决方案2】:

      我不太确定你在用这个做什么,但是这样的东西可能在你的路由文件中起作用:

      resources :users do
          get 'page_name'
      end
      

      这将产生:users/:id/page_name

      您可能想查看Railsguide on routing

      【讨论】:

        【解决方案3】:

        您要查找的是member route(第 2.9.1 节)。

        resources :users do
          member do
            get :cool_page
          end
        end
        

        将导致 /users/:id/cool_page

        【讨论】:

        • 这与我的回答有何不同?
        • 您没有将映射放在成员上。如果你不使用 member 它不会使用 /:id/action 它将使用 /:user_id/action
        猜你喜欢
        • 2014-09-25
        • 2011-08-20
        • 2022-01-17
        • 1970-01-01
        • 2011-09-19
        • 2011-05-23
        • 1970-01-01
        • 1970-01-01
        • 2011-07-19
        相关资源
        最近更新 更多