Before you go, check out these stories!

0
Hackernoon logoHow To Show User Friends Posts Using Ruby on Rails by@othmane-namani

How To Show User Friends Posts Using Ruby on Rails

Author profile picture

@othmane-namaniOthmane Namani

Full Stack Web Developer

In this post, I’ll explain a trick that will give your web application the ability to show friends’ posts.

Notes: In this example, we assume these are implemented in your application:

  1. User and Post models implemented.
  2. A mutual friendship feature has created.

If you need to learn how to install this feature you can check for this post.

The Idea of friends’ posts is very simple. All that you need is to find the right association between User model and Post Model.

So if you think about this association, it looks very simple and natural:

A user has many friends. A friend has many posts, so the user’s friends’ posts are the collection of all the friends’ posts.

But the question is, how to put in place this association with Ruby on Rails real example?

This is our User model:

class User < ApplicationRecord
    has_many :posts, dependent: :destroy
    has_many :friendships, dependent: :destroy
    has_many :friends, through: :friendships, dependent: :destroy
    ...
end

So, if you learn this Ruby on Rail snippet of code, you will understand that :

  • A user could have a lot of posts.
  • A user has a lot of friends.
  • A friend which is also a user, has a lot of posts.

So from these associations, we can create our association with Ruby On Rails like this:

class User < ApplicationRecord
    ...
    has_many :friends_posts, through: :friends, source: :posts
    ...
end

You can understand

through:
and
source: 
methods on this OSF post.

In console :

If we have a

user1 
instance, we could show user friends posts like this:
user1.friends_posts
.

Finally, this is a link to learn more about Ruby on Rails Associations:

https://guides.rubyonrails.org/association_basics.html

Project: Rails association for better understanding:

https://www.theodinproject.com/courses/ruby-on-rails/lessons/associations#project-2-private-events

Enjoy coding on Rails!! :)

Tags

Join Hacker Noon

Create your free account to unlock your custom reading experience.