Repolode
norman

norman/friendly_id

Active Record向けのRuby gem。モデルを数値IDではなく名前のような読みやすい文字列で検索できるslugを生成します。

スター
6,222
フォーク
591
未解決の Issue
33
最終コミット
3 か月前

これは何?

FriendlyIdは、モデルの属性から人が読みやすいURL slugを生成するActive Record向けのRuby gemです。たとえば、数値の主キーを使う /states/4323454 の代わりに /states/washington のようなURLを使えるようになり、モデルのfindメソッドはどちらの形式でも受け付けます。

利用するには、テーブルにslugカラムを追加し、モデルでfriendly_idを使ってslugの元にする属性を指定して、コントローラーのModel.findをModel.friendly.findに切り替えます。また、設定ファイルやマイグレーションを生成するジェネレーターも用意されており、allow_nilを渡せばRecordNotFoundの発生を抑止できます。

slugの履歴やバージョン管理、i18n、スコープ付きslug、予約語、カスタムslugジェネレーターなど、より高度なニーズにも対応しています。MITライセンスで、gemのバージョン5.xではRails 4.0以降を対象としています。

主な機能

  • 01モデルの属性からslugを生成し、専用カラムに保存します。
  • 02findでslugと数値の主キーのどちらも指定できます。
  • 03slugの履歴を保持し、古いURLでも引き続きアクセスできるようにします。
  • 04スコープ付きslug、予約語、カスタムslugジェネレーターに対応しています。
  • 05slugのi18nに対応しています。

ユースケース

  • IDの代わりに商品名、ユーザー名、記事名をURLに表示するRailsページの構築。
  • slugの履歴を利用し、レコードのタイトル変更後も古いリンクを維持する。
  • 既存のレコードがあるRailsアプリケーションに、読みやすいパーマリンクを追加する。

クイックスタート

  1. 1

    Gemfile に gem を追加する

  2. 2

    依存関係をインストールする

    bundle install
  3. 3

    FriendlyId の設定ファイルとマイグレーションを生成する

    rails generate friendly_id
  4. 4

    マイグレーションを実行する

    rails db:migrate

使う前に知っておきたいこと

  • Ruby on Rails と Active Record モデルでのみ動作します。
  • FriendlyId を追加した後、既存のレコードのスラッグは手動で生成する必要があります。

トピック

#ruby#rails#active-record#slug#friendly-url#permalink#plugin

よくある質問

friendly_id とは?
Active Record向けのRuby gem。モデルを数値IDではなく名前のような読みやすい文字列で検索できるslugを生成します。 FriendlyIdは、モデルの属性から人が読みやすいURL slugを生成するActive Record向けのRuby gemです。たとえば、数値の主キーを使う /states/4323454 の代わりに /states/washington のようなURLを使えるようになり、モデルのfindメソッドはどちらの形式でも受け付けます。
friendly_id は無料で使えますか?ライセンスは?
friendly_id は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
friendly_id は今もメンテナンスされていますか?
半年以内に更新あり。friendly_id の最終コミットは 2026年8月18日 です。
friendly_id は何に使えますか?
IDの代わりに商品名、ユーザー名、記事名をURLに表示するRailsページの構築。 slugの履歴を利用し、レコードのタイトル変更後も古いリンクを維持する。 既存のレコードがあるRailsアプリケーションに、読みやすいパーマリンクを追加する。
friendly_id のインストール方法は?
Gemfile に gem を追加する 依存関係をインストールする: bundle install FriendlyId の設定ファイルとマイグレーションを生成する: rails generate friendly_id マイグレーションを実行する: rails db:migrate
friendly_id はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/norman/friendly_id

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

Rails、Sinatraなどの各種フレームワークで、OFFSET、KEYSET、検索、カレンダー方式のページネーションに対応する、プレーンなRuby向けの汎用ライブラリ。

4998447RubyMIT活発にメンテナンス更新 16 時間前