vdeep

*

vdeepはプログラミング、IT、Web技術、ライフハックの事などなどを管理人okutaniがつぶやくブログです

【Rails】『friendly_id』を使ってid以外の好きなURLをつかう方法

   

LINEで送る
Pocket


こんにちは、okutani(@okutani_t)です。本記事では、『friendly_id』gemを使ってid以外の好きなパラメーターを受け取り、分かりやすいURLをつかう方法について解説しています。

Ruby on Railsでは、URLにidを使うのが一般的ですが、friendly_id gemを使うと任意の文字列にすることができます。

ちなみに、任意の文字列でURLを決めることを「Pretty URL」なんて言うらしいです。かわいいURL。

friendly_idのGitHubリポジトリは以下のリンクです。

LINKnorman/friendly_id

例えば、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について – Qiita

スポンサーリンク

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ユーザーの参考になれば幸いです。

LINEで送る
Pocket

okutani (@okutani_t) のヒトコト
ユーザー名を利用することで、ユーザーのマイページが分かりやすくなってよいですね。もっといろんなところで活用していきたいです。

 - Ruby on Rails

スポンサーリンク

PC用AdSense

PC用AdSense

  こちらもどうぞ

vdeepのトップページへ戻る画像です。風船の形をした島を女の子が掴んでいます。