๐Ÿงน Adding Slug to Task in Rails


๐ŸŽฏ Problem

Using /tasks/:id in URLs exposes database IDs. This can leak information like:

Example:

/tasks/1  โœ… Functional, โŒ Not ideal


๐Ÿ” Solution: Use Slugs

A slug is a URL-friendly, human-readable identifier (e.g., buy-milk), used instead of exposing the primary key.

Benefits:


๐Ÿ“ฆ Migration: Add Slug Column

bundle exec rails generate migration AddSlugToTask

Migration:

class AddSlugToTask < ActiveRecord::Migration[7.1]
  def change
    add_column :tasks, :slug, :string
  end
end