Using /tasks/:id in URLs exposes database IDs. This can leak information like:
Example:
/tasks/1 โ
Functional, โ Not ideal
A slug is a URL-friendly, human-readable identifier (e.g., buy-milk), used instead of exposing the primary key.
Benefits:
bundle exec rails generate migration AddSlugToTask
Migration:
class AddSlugToTask < ActiveRecord::Migration[7.1]
def change
add_column :tasks, :slug, :string
end
end