こんにちは、okutani(@okutani_t)です。本記事では、『friendly_id』gemを使ってid以外の好きなパラメーターを受け取り、分かりやすいURLをつかう方法について解説しています。
Ruby on Railsでは、URLにidを使うのが一般的ですが、friendly_id gemを使うと任意の文字列にすることができます。
ちなみに、任意の文字列でURLを決めることを「Pretty URL」なんて言うらしいです。かわいいURL。
friendly_idのGitHubリポジトリは以下のリンクです。
例えば、userモデルの1が田中さんだとすると、friendly_idを使って以下のようにURLを決めることができます。
http://localhost:3000/users/1
↓
http://localhost:3000/users/tanaka
一例として、GitHubでは、「https://github.com/okutani-t 」のように、ユーザーのページにユーザーIDを利用していますね。
WordPressのように記事にスラッグを決めてルーティングしたい場合にも有効ですね。
それでは、さっそくfriendly_idの導入方法と使い方についてみていきましょう。
スポンサーリンク
friendly_idの導入
friendly_idはgemで導入できます。Gemfileに以下を追記。
gem 'friendly_id'
インストールを実行。今回はプロジェクト直下に導入しました。
$ bundle install --path vendor/bundle
Userモデルの作成
今回は以下のUserモデルを利用する前提で話を進めます。
$ rails g model User nickname
これでUserモデルが作成されました。
ユーザー名をURLに使ってみる
では、friendly_idを使ってユーザー名をURLに使ってみましょう。
Userモデルに以下を記述。
class User < ApplicationRecord
include FriendlyId
friendly_id :nickname
end
あとは、「User.find()」していた箇所を「User.friendy.find()」に変更します。
@user = User.find(params[:id])
↓
@user = User.friendly.find(params[:id])
これで、URLにユーザー名を利用することができますね。
とてもかんたんにPretty URLを利用することができました。
まとめ
本記事では、friendly_idを使ってidを使わず独自のURLを生成する方法について解説しました。
friendly_idには、スペース入りの文字列をURLで読み込める形に変換するslug機能もあります。
詳しく知りたい方は公式のGitHubページを参考にしてみてください。
Railsユーザーの参考になれば幸いです。