我正在尝试使用“友好的”永久链接结构(如 Adam Darowski 的博客文章1中所述)在我的 Rails 3.2 应用程序中路由内容。我找到了一些描述如何在单个“页面”或“类别”控制器中执行此操作的答案,但理想情况下,我希望应用程序在“部分”URL 的情况下路由到最具体的控制器。
http://example.com / shows / :genre / :series / :season / :episode
因此,例如:/shows/entertainment/the-survivors/01/01
将路由到 Episodes 控制器(播放特定系列的第 1 季第 1 集),/shows/entertainment/the-survivors/
并将路由到 Series 控制器(列出该系列中的所有剧集)。等等。
我听说嵌套路由的深度不应超过一层,因此这似乎是一个糟糕的解决方案(标准嵌套路由“污染”了带有控制器名称和 ID 的 URL,无论如何/genres/entertainment/shows/the-survivors/seasons/1/episodes/1
,我想避免)。
到目前为止,我能想出的最佳解决方案只是match
我的 routes.rb 文件中的一系列越来越具体的规则,随着 URL 变得越来越具体,这些规则指向每个控制器。
在 Rails 中有没有更好的方法来做到这一点?