2
用戶可以提交資源並發表評論。按關聯記錄的數量排序記錄
我想通過選擇已提交資源和評論的用戶來顯示最活躍的用戶,並將提交了最多資源和評論的用戶的結果排序爲最低。
**Resource**
has_many :users, :through => :kits
has_many :kits
belongs_to :submitter, class_name: "User"
**User**
has_many :resources, :through => :kits
has_many :kits
has_many :submitted_resources, class_name: "Resource", foreign_key: "submitter_id"
**Kits**
belongs_to :resource
belongs_to :user
**Comments**
belongs_to :user
我是新來的這種sql在Rails中。我怎樣才能得到這個記錄集?
謝謝Tanzeeb,我有一個問題。 1. def-method中是否應該有remove_column:users,:submitted_resources_count? 2.我得知我運行這個遷移,但是User.find_each做的方法是| u |將僅在此次遷移時運行。那麼,我需要將它放在一個範圍內還是放在應用程序的其他位置,以便在我需要找到最活躍的用戶時運行? – chell 2012-07-16 15:03:17
偉大的問題。 1)是的。 down方法應該撤消,因爲up會創建兩列,down應該刪除它們。 2)遷移中的更新設置了初始計數,但不需要再次調用。 Rails會自動更新匹配模式* _count的任何列與相應關聯的計數。您可以使用第三個查詢User.select ...作爲類方法或範圍來提取頂級用戶。將限制(1)添加到鏈的末尾以僅獲取頂級用戶。 – 2012-07-17 04:40:00