StackOverflow は、質問に対してこのスタイルのルートを持っているようです:
/questions/:id/*slug
これは、ルートと の両方で簡単に実現できto_param
ます。
ただし、ID だけが渡されると、StackOverflow もそのパスにリダイレクトされるようです。
例:
stackoverflow.com/questions/6841333
にリダイレクトします:
stackoverflow.com/questions/6841333/why-is-subtracting-these-two-times-in-1927-giving-a-strange-result/
ナメクジのバリエーションについても同じことが言えます
stackoverflow.com/questions/6841333/some-random-stuff
それでも同じ URL にリダイレクトされます。
私の質問は次のとおりです。このタイプのリダイレクトは通常、コントローラーで処理されますか (リクエストをルートと比較します)、または でこれを行う方法はありroutes.rb
ますか?
ファイルでこれが可能だとは思わない理由routes.rb
は、通常、オブジェクトにアクセスできないためです (したがって、ID に基づいてスラッグを取得できませんでしたよね?)
興味のある方は、Rails 3.2.13 とFriendlyIDの使用