我刚开始在铁轨上学习红宝石。我对路由有疑问。
Rails中的默认路由是:controller/:action/:id
这个例子非常好,例如example.com/publisher/author/book_name
你能告诉我你如何使用像这个网站这样非常大的东西
http://www.telegraph.co.uk/sport/football/leagues/premierleague/chelsea/
您是否可以让我了解上述网址的各种控制器,操作,ID以及如何编码控制器,模型以实现此目的。
在处理这个大网址时,你能否给我一些很好的教程。
期待您的帮助
提前致谢
高塔姆
答案 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指南是一个很好的起点。