これがwww.example.com/class/function/ID/の形式と完全に一致しないことは知っていますが、ユーザーに表示したいものの方が理にかなっています。
これが私がやりたいことです:
www.example.com/project/id/item/item_id/
したがって、例は次のようになります。
www.example.com/project/5/item/198237/
そして、これは動作になります:
- www.example.com/project/->これにより、プロジェクトのリストが表示されます(現在の実装)
- www.example.com/project/5/->これにより、プロジェクト5(現在の実装)のアイテムのリストが表示されます。
- www.example.com/project/5/item/->これは、上記の行と実際には何も違うことを意味するものではありません。(それは悪いですか?)
- www.example.com/project/5/item/198237/->これにより、アイテム198237の詳細が表示されます。
したがって、各アイテムは1つのプロジェクトに直接関連付けられています。
これを行う方法を考える唯一の方法は、「プロジェクト」コントローラーを肥大化させ、さまざまなパラメーターを解析し、その「プロジェクト」コントローラーからのすべてのビューを制御することです。「アイテム」のモデルとビューは「プロジェクト」のモデルとビューから完全に分離されているため、これは行いたくありません。
他の唯一の解決策(私が現在実装していて、好まない)は、次のものを使用することです。
www.example.com/project/5/ www.example.com/item/198237/
「プロジェクト」コントローラーを肥大化させることなく、最初に示したように階層URLを構築する方法はありますか?