`id`フィールド以外のものを使用するようにレールにデフォルトルート/パスヘルパーのオーバーライド私のデータベースでは、私は各ユーザーごとに生成する固有のハッシュIDを使用したかったのです。それは滑らかな印象に見えると私は、私が以前使用していたルートパスヘルパー使用しての利便性を失うしかし、私のシーケンシャルDB情報は<code>id</code>からを使用しての</p> <pre><code>/users/:id # eg. /users/7 </code></pre> <p>代わりに、私は、URLを使用して私のアプリに任意のユーザー」オブジェクトの<code>show</code>ページを表示することができます
/users/kF87sl8H2
を暴露回避 - user_path(@user)
を。私は今では複数の場所でそれを置き換える必要がありますuser_path(id: @user.hash_id)
古いルートヘルパーを維持し、ちょうど私の@user
インスタンスを渡す方法はありますか?私はそれが何とかパスヘルパーをオーバーライドする必要がありますか?
また、わずかに関連しています - これらのハッシュIDを生成することに関するベストプラクティスはありますか?私はちょうどSecureRandom.hex
を使用するつもりだったが、私はGoogle+が数字だけを使用し、Youtubeは異なる大文字を使用することを知っている。
https://www.youtube.com/watch?v=dQw4w9WgXcQ
これらを生成する良い方法はありますか?
ありがとうございます!私はあなたがあなたのUserクラスのためのルートヘルパーメソッドをオーバーライドするには、以下の
class User
def to_param
hash_id
end
end