Rails的新手。对大URL路由的怀疑

时间:2010-05-31 18:29:29

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

我刚开始在铁轨上学习红宝石。我对路由有疑问。

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

这个例子非常好,例如example.com/publisher/author/book_name

你能告诉我你如何使用像这个网站这样非常大的东西

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

您是否可以让我了解上述网址的各种控制器,操作,ID以及如何编码控制器,模型以实现此目的。

在处理这个大网址时,你能否给我一些很好的教程。

期待您的帮助

提前致谢

高塔姆

3 个答案:

答案 0 :(得分:2)

这是使用嵌套资源实现的(读取或google用于“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还介绍了使用嵌套资源进行Restful路由的一些基础知识。

答案 1 :(得分:1)

路由引擎可以处理任意大小的URL。这完全取决于您的规格。为此,它将是:

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

你指路的控制器是重要的部分。然后将其称为:

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

您始终可以使用以下方法检查定义的路线:

rake routes

答案 2 :(得分:0)

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