FreindlyId gem is used to make
friendly looking URLs i.e it lets us replace id’s in the URL with the
string. It also prevents hacking of the web-page since the id gets
hidden by the slug. Before friendly_id:
After friendly_id :
Here are the simple steps to follow:
Step 1: Add gem “friendly_id” to the Gemfile and run “bundle install” on terminal.
A] On an existing application :
Step 2: Run “rails g migration AddSlugToJobs”.
In this case, “slug” is the column name which is adding into existing “jobs” table.
Slug : Slug is the part of the URL. It is the slug which makes the URL user friendly.
Slug rules states that the string in the URL is separated by dash (-). Its rule also states that the letters in the URL are in lowercase.
Step 3: Add the following code to the migration file :
In my application,I have migration file “20180109135747_add_slug_to_jobs.rb” in “db/migrate/20180109135747_add_slug_to_jobs.rb”. In this step I am adding a column name “slug” to the existing table “jobs” and indexing it. In your case, you can add the code to your migration file and replace “:jobs” with your table name.
Step 4: Run “rake db:migrate”
Step 5: Add the following code to the model :
In my case, I have added the code in “job.rb” file which is in “app/models/job.rb”. In your case, add the code in your model’s file. In this step, I am extending “FriendlyId” module and using “friendly_id” method with the column name to tell rails which column to be used as a slug.
Step 6: Edit the show action of the controller:
In my application, I have controller “jobs_controller.rb” in app/controllers/jobs_controller.rb. In your case add the following code to the show action of your controller.
Now the friendly_id will be applied to the new records which you create but in order to add friendly_id to the previous records which was created before adding friendly_id gem, follow the next step.
Step 7: run “rails c” enter and run :
Job.find_each(&:save)
Now your application is ready with a functionality of friendly_id. When you will create new record, it’s id in the URL will gets replaced with the slug. In my case , here is my output.
B] On a new project :
Step 2: Run “rails generate controller Posts index new show destroy ”
Run “rails generate model Post title:string slug:string body:text ”
Step 3: Add the following line to the migration file :
add_index :posts, :slug, unique: true
In my case, I have added the line in “20180130104525_create_posts.rb” file which is in “db/migrate/20180130104525_create_posts.rb”. Basically, I am adding the index to the “slug” column. In your case add this line in your file in “db/” and replace “:posts” with your table name.
Step 4: Run “rake db:migrate”
Step 5: Add the following code to the model
In my case, I have added the code in “post.rb” file which is in “app/models/post.rb”. In your case add the code in your model’s file. In this step, I am extending “FriendlyId” module and using “friendly_id” method with the column name to tell rails which column to be used as a slug.
Step 6: Edit the show action in the controller.
In my case, I have edited the show action in “post_controller.rb” which is in “app/controllers/post_controller.rb”. In your case edit the show action in your controller.
Now your newly created application is ready with the functionality of friendly_id.
Source: http://www.cryptextechnologies.com/blogs/how-to-make-friendly-url-using-friendly_id-gem
After friendly_id :
Here are the simple steps to follow:
Step 1: Add gem “friendly_id” to the Gemfile and run “bundle install” on terminal.
A] On an existing application :
Step 2: Run “rails g migration AddSlugToJobs”.
In this case, “slug” is the column name which is adding into existing “jobs” table.
Slug : Slug is the part of the URL. It is the slug which makes the URL user friendly.
Slug rules states that the string in the URL is separated by dash (-). Its rule also states that the letters in the URL are in lowercase.
Step 3: Add the following code to the migration file :
In my application,I have migration file “20180109135747_add_slug_to_jobs.rb” in “db/migrate/20180109135747_add_slug_to_jobs.rb”. In this step I am adding a column name “slug” to the existing table “jobs” and indexing it. In your case, you can add the code to your migration file and replace “:jobs” with your table name.
Step 4: Run “rake db:migrate”
Step 5: Add the following code to the model :
In my case, I have added the code in “job.rb” file which is in “app/models/job.rb”. In your case, add the code in your model’s file. In this step, I am extending “FriendlyId” module and using “friendly_id” method with the column name to tell rails which column to be used as a slug.
Step 6: Edit the show action of the controller:
In my application, I have controller “jobs_controller.rb” in app/controllers/jobs_controller.rb. In your case add the following code to the show action of your controller.
Now the friendly_id will be applied to the new records which you create but in order to add friendly_id to the previous records which was created before adding friendly_id gem, follow the next step.
Step 7: run “rails c” enter and run :
Job.find_each(&:save)
Now your application is ready with a functionality of friendly_id. When you will create new record, it’s id in the URL will gets replaced with the slug. In my case , here is my output.
B] On a new project :
Step 2: Run “rails generate controller Posts index new show destroy ”
Run “rails generate model Post title:string slug:string body:text ”
Step 3: Add the following line to the migration file :
add_index :posts, :slug, unique: true
In my case, I have added the line in “20180130104525_create_posts.rb” file which is in “db/migrate/20180130104525_create_posts.rb”. Basically, I am adding the index to the “slug” column. In your case add this line in your file in “db/” and replace “:posts” with your table name.
Step 4: Run “rake db:migrate”
Step 5: Add the following code to the model
In my case, I have added the code in “post.rb” file which is in “app/models/post.rb”. In your case add the code in your model’s file. In this step, I am extending “FriendlyId” module and using “friendly_id” method with the column name to tell rails which column to be used as a slug.
Step 6: Edit the show action in the controller.
In my case, I have edited the show action in “post_controller.rb” which is in “app/controllers/post_controller.rb”. In your case edit the show action in your controller.
Now your newly created application is ready with the functionality of friendly_id.
Source: http://www.cryptextechnologies.com/blogs/how-to-make-friendly-url-using-friendly_id-gem
Comments
Post a Comment