私はレールにかなり慣れていないので、単純なことやレールのやり方を見落としていたら許してください。私の目的は、フォームの URL を完全に置き換えることです。
/users/1
と
/username
すべての目的のために。(ID の足場を公に公開することは、腕から骨が突き出た状態で歩き回るようなものだと思います。) しかし、実装は思ったよりも少し複雑に思えます。これは、検索方法を単に置き換えるのではなく、レールのインデックス作成とユーザー検索の方法全体を変更するようです。
to_param
ファイルのオーバーライドを使用してこれが機能するようになりましたがuser.rb
、これを読んだところ、 を使用するときにインデックス作成の 問題 が発生することを意味し、それがどのように影響するかわかりませんparams([:username])
(a) 新しいユーザー作成時のセッション モデル、および
(b) user/show.html.erb ファイルでの @User の使用。
それで、私は次のページを調べました(または質問しました):
- Ruby on Rails ルーティング マッチング ユーザー名
- ユーザー名でレールのURLをカスタマイズする
- ユーザー名を URL にする Rails でのルーティング:
- URL の :username によるルーティング エラー
- Railsのユーザー名による短いURLの正しいルーティング
- rails3, クリーン URL, Friendly_id, セッション
この質問から理解したい主な問題:
- これに移行すると、どの機能が失われますか? つまり、この置き換えを追求する場合、対処して書き直さなければならないレールで現在「正常に機能する」ものは何ですか?
- 練習として、これはFriendly_idに置き換える方が良いでしょうか? ここでの私の懸念は、DB にユーザー名と同じスラッグ列を作成することは少し非 DRY のように見え、私を不快にさせることです。可能であれば、外部の gem への依存を避けたいと思います。
- users#show はどのように表示する必要がありますか?