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:
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 :
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!! :)