config/routes.rb

URL <===> config/routes.rb <===> パラメータ(@params)
  • パターンコンポーネント
    • :パラメータ名
    • *パラメータ名 (※配列)
    • / (※コンポーネントの区切り)
    • :controller (※モジュールに含まれるコントローラは'/'で区切られる)
  • リクエストURLからパラメータを取得
    • routes.rbからURLパターンを探す(上から探し、最初にマッチしたもの)
    • リクエストURLから、マッチしたパラメータの値を取り出す
    • リクエストURLにないパラメータはデフォルト値を取り出す
  • パラメータからURLを生成
    • 現在のリクエストパラメータがあれば、まずそれをデフォルトとする
      • パラメータはURLと同じ階層をもつ
      • パラメータが変更されると、それより下の階層のデフォルトパラメータはクリアされる
      • デフォルトパラメータをクリアしたくないときは :overwrite_params
    • routes.rbからURLパターンを探す(上から探し、最初にマッチしたもの)
    • パターンコンポーネントにパラメータの値をセットしてURLを生成する