2016-07-28 73 views
0

加入嵌套協會,團體和秩序我有嵌套的模型結構:通過計數

class Forum < ActiveRecord::Base 
    has_many :topics 

class Topic < ActiveRecord::Base 
    has_many :posts 
    belongs_to :forum 

class Post < ActiveRecord::Base 
    belongs_to :topic 
    has_many :post_links 
    has_many :links, ->{ uniq }, through: :post_links, dependent: :destroy 

class PostLink < ActiveRecord::Base 
    belongs_to :post 
    belongs_to :link 

class Link < ActiveRecord::Base 
    has_many :post_links 
    has_many :posts, ->{ uniq }, through: :post_links, dependent: :destroy 

所以我想這是帖子說是主題,在論壇,ID = 1

所有鏈接

按照論壇中出現的次數降序排列。

所以,如果我有一些職位youtube.com 5次論壇,ID = 1,和10時google.com話,我想有這樣的:

id,name,mentions_count 
1,google.com,10 
2,youtube.com,5 
+0

計數什麼? – emrahbasman

+0

在這個論壇的所有帖子鏈接提及次數。 –

+0

在論壇1中訂購帖子的鏈接數量? – emrahbasman

回答

0
Forum.where(id: 1).joins(topics: [posts: [:links]]).order("count_all DESC").group("links.host").count 
=> {"youtube.com"=>5, "google.com"=>2} 

我假設你有在你的鏈接表中的主機列