How To Add Like and Unlike Function In Rails.

How To Add Like and Unlike Function In Rails.

29 Sep 2022
0 Comments
How To Add Like and Unlike Function In Rails.

To add the Like & Unlike feature in Rails, the first to accomplish is to make sure that the Post feature is already created. This step-by-step guide will provide a quick introduction to adding like & unlike to the post.


Follow the below-mentioned steps to add the like feature:

Step 1: Create the controller and model

First, we need to generate the model.

rails g model PostLike post:references user:references

Then, migrate the table.

rails db:migrate

Finally, add the controller:

rails g controller Post likes


Step 2: Add the create method to the controller.

Use voter_id as a foreign key from the user table. user_id can also be used as a foreign key.


Step 3: In app/views/posts/show.html.erb, add the below-specified code:


Step 4: In routes.rb, nest the comments resource inside the posts resource:


Step 5: Establish one-to-many relationships between the Posts and Users Model.

Add the code: - app/model/post.rb and app/model/user.rb


Follow the below code for count like feature:

Step 1: In app/views/posts/show.html.erb and app/views/posts/show.html.erb

add the above-mentioned line of code to display the number of likes a post has.


Stop people from liking the post more than once:

Step 1: Add a method to verify if the user has already liked a photo. Under private access specifier, add


Step 2: Update the create function, to avoid multiple likes on the post with the help of already_liked? method.


Step 3: In the like controller, add a destroy method.

This method makes sure that the user doesn’t unlike when they haven’t liked the post in the first place.


Step 4: To delete the like on the post, first find the like. To find the specific like, add a find_like method.


Step 5: To make sure this method is called on the destroy method, put this line of code at the top of the controller.


Step 6: Add the unlike button/link and make sure it displays when the user clicks the like button on the post.

In app/views/posts/index.html.erb

a) Find the Post_like with voter_id and current user id.

b) If both the ids match, go to delete the link and create a like link.




Leave a comment: