Articles has_many tags and tags has_many articles - best way to get tag names uniq
Hi!
I have few models:
Article, Tag, ArticlesTag 
class Article < ApplicationRecord  
  has_many :articles_tags
  has_many :tags, through: :articles_tags
end
class Tag < ApplicationRecord
  has_many :articles_tags
  has_many :articles, through: :articles_tags
end
class ArticlesTag < ApplicationRecord
  belongs_to :article
  belongs_to :tag
end
In Articles index view I need to get all articles tags but they should be unique. What is the best way to get them?
Tag - model at the moment is associated only with Article but in the feature it will be with other model as well.
So I can get ArticlesTag.all - this give me all tags in articles and group them by tag name to be unique. 
Like this:
 ArticlesTag.all.group_by(&:tag_id)
Or even ids of tags
 ArticlesTag.all.group_by(&:tag_id).keys
That give me ids of the tag so to get names need to pull it from tag model in the loop.
tags =  ArticlesTag.all.group_by(&:tag_id).keys
tags.each do |key|
 puts Tag.find(key).name
end
Is there a better - easier way to get tags names ?
Hi there Nikodem,
First, a tiny nitpick with your naming—what you're calling ArticlesTag, I would rename to ArticleTag. It's just one tag for one article.
Now, to get all the tag names that've been assigned to at least one article, you can do something like:
Tag.joins(:article_tag).distinct.pluck(:name)

