【发布时间】:2012-09-23 22:13:31
【问题描述】:
我正在尝试使用“友好”的永久链接结构(如 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/ 将路由到系列控制器(列出该系列中的所有剧集)。以此类推。
我听说嵌套路由的深度不应超过一层,因此这似乎是一个糟糕的解决方案(标准嵌套路由“污染”了带有控制器名称和 ID 的 URL,例如 /genres/entertainment/shows/the-survivors/seasons/1/episodes/1,我想避免)。
到目前为止,我能想到的最佳解决方案只是在我的 routes.rb 文件中添加一系列越来越具体的 match 规则,随着 URL 越来越具体,这些规则指向每个控制器。
在 Rails 中有没有更好的方法来做到这一点?
【问题讨论】:
标签: ruby-on-rails ruby url-routing ruby-on-rails-3.2