【问题标题】:New to Rails. Doubt in Big URL RoutingRails 新手。大 URL 路由存疑
【发布时间】:2011-02-26 01:59:41
【问题描述】:

我刚刚开始在 Rails 上学习 Ruby。我对路由有疑问。

Rails 中的默认路由是:controller/:action/:id

这个例子真的很好用,比如说 example.com/publisher/author/book_name

你能告诉我你是如何处理像这个网站这样非常大的东西的

http://www.telegraph.co.uk/sport/football/leagues/premierleague/chelsea/

您能否让我了解一下上述 url 的各种控制器、动作、id 以及如何编写控制器、模型以实现这一点。

在处理这些大 url 时,你能推荐一些好的教程吗?

期待您的帮助

提前致谢

高塔姆

【问题讨论】:

    标签: ruby-on-rails ruby routing url-routing


    【解决方案1】:

    这是使用嵌套资源实现的(阅读或谷歌“rails restful routes”。在您的情况下,它可能看起来像这样:

    map.resources :sports do |sport|
      sport.resources :leagues do |league|
        league.resources :team
          # probably more nested routes for members or sponsors or whatever...
        end
      end
    end
    

    您还可以使用 rake 任务查看您定义的路线:

    $ rake routes
    

    This RailsCasts episode 还涵盖了一些使用嵌套资源的静态路由的基础知识。

    【讨论】:

      【解决方案2】:

      Rails Routing from the Outside In 指南是一个很好的起点。

      【讨论】:

        【解决方案3】:

        路由引擎可以处理任意大小的 URL。这一切都取决于你的规格是什么。为此,它将是:

        map.sport_league_team '/sport/:sport/leagues/:league/:team'
        

        您将其路由到哪个控制器是重要的部分。然后将其称为:

        <%= link_to("Chelsea", sport_league_team_path('football', 'premierleague', 'chelsea') %>
        

        您可以随时检查定义了哪些路由:

        rake routes
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-19
          • 2011-02-26
          • 2012-10-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多