Refactor Community model.

This commit is contained in:
taitus
2017-09-06 14:07:44 +02:00
parent c5cb463a2e
commit 25560a27fc

View File

@@ -4,8 +4,8 @@ class Community < ActiveRecord::Base
has_many :topics has_many :topics
def participants def participants
users_participants = users_who_commented_by + users_participants = users_who_commented +
users_who_topics_author_by + users_who_topics_author +
author_from_community author_from_community
users_participants.uniq users_participants.uniq
end end
@@ -16,24 +16,19 @@ class Community < ActiveRecord::Base
private private
def users_who_commented_by def users_who_commented
topics_ids = topics.pluck(:id) topics_ids = topics.pluck(:id)
query = "comments.commentable_id IN (?)and comments.commentable_type = 'Topic'" query = "comments.commentable_id IN (?)and comments.commentable_type = 'Topic'"
User.by_comments(query, topics_ids) User.by_comments(query, topics_ids)
end end
def users_who_topics_author_by def users_who_topics_author
author_ids = topics.pluck(:author_id) author_ids = topics.pluck(:author_id)
User.by_authors(author_ids) User.by_authors(author_ids)
end end
def author_from_community def author_from_community
if from_proposal? from_proposal? ? User.where(id: proposal.author_id) : User.where(id: investment.author_id)
User.where(id: proposal.author_id)
else
investment = Budget::Investment.where(community_id: id).first
User.where(id: investment.author_id)
end
end end
end end