私の Rails アプリでは、ユーザーは 1 つのレジストリを作成でき、URL は次のようになります。
http://localhost:3000/registries/3
たとえば、そのURLを次のようにするにはどうすればよいですか。
http://localhost:3000/erinwalker
前もって感謝します。
私の Rails アプリでは、ユーザーは 1 つのレジストリを作成でき、URL は次のようになります。
http://localhost:3000/registries/3
たとえば、そのURLを次のようにするにはどうすればよいですか。
http://localhost:3000/erinwalker
前もって感謝します。
これを行う最も簡単な方法は、routes.rb ファイルの下部に新しいルートを作成することです。
match "/:username" => "registries#show"
これは、routes.rb ファイルの最後に置くことが重要です。これは、その前のルートと一致しない "/whatever" 形式のルートと一致するためです。
これは、レジストリ コントローラの show アクションを指します。したがって、そのアクション内でできることは
@user = User.find_by_username params[:username]
@registry = @user.registry
Friendly_id gemとその他のslugging gem は、IMO で最も簡単な方法です。
(そして、ここにFriendly_id レールキャストがあります。 )
とはいえ、正当なスラッグ値を受け入れてリダイレクトしたり、自分で調べたりするルートを作成するのは簡単です。