「わかりやすい」パーマリンク構造を使用して、Rails 3.2 アプリでコンテンツをルーティングしようとしています (Adam Darowski のブログ投稿1で説明されています)。単一の「ページ」または「カテゴリ」コントローラー内でこれを行う方法を説明するいくつかの回答を見つけましたが、理想的には、「部分的な」URL の場合にアプリを最も具体的なコントローラーにルーティングしたいと考えています。
http://example.com / shows / :genre / :series / :season / :episode
たとえば/shows/entertainment/the-survivors/01/01
、エピソード コントローラー (特定のシリーズのシーズン 1 エピソード 1 を再生) に/shows/entertainment/the-survivors/
ルーティングし、シリーズ コントローラー (そのシリーズのすべてのエピソードを一覧表示) にルーティングします。などなど。
ネストされたルーティングの深さは 1 レベルを超えてはならないというルールを聞いたことがあります。そのため、それは悪い解決策のように思えます (また、標準のネストされたルーティングは、コントローラ名と ID の両方で URL を「汚染」します/genres/entertainment/shows/the-survivors/seasons/1/episodes/1
。これは避けたいと思います)。 )。
私がこれまでに見つけた最善の解決策はmatch
、URL がますます具体的になるにつれて各コントローラーを指す、routes.rb ファイル内のますます具体的な一連のルールです。
Railsでこれを行うより良い方法はありますか?