は、私はこれを行うだろうかだ(最も効率的ではないかもしれないが、動作します)
のconfig/routes.rbをしてURLRouter
という名前のダミーコントローラを作成します
match ':object' => 'URLRouter#show'
このあなたのURLRouterコントローラでSHOWアクションを呼び出し、リクエストしているものをparams [:object]に配置します。
if User.find_by_username(params[:object])
render "users/show/#{params[:object]}"
end
繰り返し異なるモデルごとに、このif文:
はそのURLRouterコントローラでは、次のコードを配置します。最初のモデルは、3番目のモデルなどに優先する2番目のモデルよりも優先されます。
ユーザー名と同じ値のタグを作成できないようにする必要があります。内部リンクと同じ値に等しいユーザー名を作成するなどします。そうしないと、アクセスできないページが表示される可能性があります(URLは意図した以外のモデルにルーティングされる可能性があります)。
もう1つ重要なことは、この方法でルートを変更すると、残りの後にこのマッチステートメントを置くことです。