How To Add Like and Unlike Function In Rails.

How To Add Like and Unlike Function In Rails.

29 Sep 2022
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: