Review my ruby for performance
Assuming these are all AR models with appropriate associations, I'd create a method on Site that iterates over a site instance's Blogs, Questions and Videos and collects their tags.  Something like this maybe:

def get_site_tags
  tags = []
  self.blogs.each do |blog|
    (tags &lt;&lt;  blog.tags)
  end
  self.questions.each do |question|
    (tags &lt;&lt;  question.tags)
  end
  self.videos.each do |video|
    (tags &lt;&lt;  video.tags)
  end
  tags.flatten!
end


Would this work for you or am I missing something?