1

アプリケーションの各ユーザーに、www.mydomain.com/username のような一意の URL を付与したいと考えています。どうすればこれを達成できますか?私はインターネットで検索しましたが、それらのほとんどは、各ユーザーに一意のサブドメインを割り当てることについて話しています. 私の場合、ユーザー名がホームや製品などの他のコントローラーと競合するとどうなりますか。

前もって感謝します、

4

1 に答える 1

2

ルートは上から下に解決され、上にあるルートは下にあるルートよりも重要です。

つまり、最初にログイン、コンテンツページなどのすべてのルートを最初にファイルに配置する必要があり、それらは次のようなものです

get `/:username` => 'users#show`

その後

root :to => 'some#path'

ルートはファイルの最後のものでなければならないためです。

上記のコードが行うことは、以前のルートと一致しなかったすべてのリクエストをルーティングして、セットUsersControllerでアクションを表示しparams[:username]ます。したがって、人がに行くと、彼らは=>で/charinten終わります。UsersController#showparams[:username]charinten

すべてのユーザー プロファイルにアクセスできるようにするには、制限されたキーワード (例: 「users」、「session」など) のリストを作成する必要があります。ユーザーがユーザー名を設定するときは、それらのいずれでもないことを確認してください。無効/制限されたユーザー名を処理する方法はいくつかありますが、ユーザーに別のユーザー名を選択するように依頼するのが最善だと思います (ユーザー名が既に使用されている場合と同じ)。

于 2013-07-18T09:36:10.467 に答える