アプリケーションの各ユーザーに、www.mydomain.com/username のような一意の URL を付与したいと考えています。どうすればこれを達成できますか?私はインターネットで検索しましたが、それらのほとんどは、各ユーザーに一意のサブドメインを割り当てることについて話しています. 私の場合、ユーザー名がホームや製品などの他のコントローラーと競合するとどうなりますか。
前もって感謝します、
アプリケーションの各ユーザーに、www.mydomain.com/username のような一意の URL を付与したいと考えています。どうすればこれを達成できますか?私はインターネットで検索しましたが、それらのほとんどは、各ユーザーに一意のサブドメインを割り当てることについて話しています. 私の場合、ユーザー名がホームや製品などの他のコントローラーと競合するとどうなりますか。
前もって感謝します、
ルートは上から下に解決され、上にあるルートは下にあるルートよりも重要です。
つまり、最初にログイン、コンテンツページなどのすべてのルートを最初にファイルに配置する必要があり、それらは次のようなものです
get `/:username` => 'users#show`
その後
root :to => 'some#path'
ルートはファイルの最後のものでなければならないためです。
上記のコードが行うことは、以前のルートと一致しなかったすべてのリクエストをルーティングして、セットUsersController
でアクションを表示しparams[:username]
ます。したがって、人がに行くと、彼らは=>で/charinten
終わります。UsersController#show
params[:username]
charinten
すべてのユーザー プロファイルにアクセスできるようにするには、制限されたキーワード (例: 「users」、「session」など) のリストを作成する必要があります。ユーザーがユーザー名を設定するときは、それらのいずれでもないことを確認してください。無効/制限されたユーザー名を処理する方法はいくつかありますが、ユーザーに別のユーザー名を選択するように依頼するのが最善だと思います (ユーザー名が既に使用されている場合と同じ)。