【Rails】『friendly_id』を使ってid以外の好きなURLをつかう方法
こんにちは、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ユーザーの参考になれば幸いです。
Web開発のお仕事を募集しています
フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。
「Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。
ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。
LINKお問い合わせ
スポンサーリンク