Using a FriendlyID gem enables a user to access a particular resource based on its name rather than its id. For example, imagine the URL www.123abc.com/resources/1. With the FriendlyID gem, a user may be able to access it as www.123abc.com/resources/my-favourite-resource. This operation is known as canonical cleaning or URL, which results in a āFriendlyID is used across most Rails projects due to its ability to make web links memorable. However, it does nothing except provide users with the ability to access a particular resource more conveniently.
The following is the series of steps required for installation and usage:
Install the gem:
// this command will install it globally
gem install friendly_id
Add a slug column to our desired table:
rails g migration AddSlugToUsers slug:uniq
Generate the friendly configuration file and new migration:
rails generate friendly_id
Run the migration scripts:
rails db:migrate
Edit in the app/models/user.rb file like:
class User < ApplicationRecord
extend FriendlyId
friendly_id :name, use: :slugged
end
Edit in the app/controllers/users_controller.rb file and replace User.find by User.friendly.find
class UserController < ApplicationController
def show
@user = User.friendly.find(params[:id])
end
end
Now, you create a new user like the following:
User.create! name: "alex williams"
You can then access the user show page using http://localhost:8000/users/alex-williams.
Free Resources