2
我正在開發一款應用程序,它是一款紙牌遊戲。每張卡都存放在一張桌子(卡片)中,並有一定數量的點數。如果一個用戶贏得一張卡,他就會獲得這張卡的積分。在這種情況下,記錄保存在保存有card_id
,user_id
和success = true
的user_card表中(如果他丟失了卡,它是success = false
)。Rails集團和總計
card.rb
class Card < ActiveRecord::Base
has_many :user_cards
has_many :users, through: :user_cards
end
user_card.rb
class UserCard < ActiveRecord::Base
belongs_to :user
belongs_to :card
end
我想現在要做的是創建一個排行榜。因此,我需要:
- 集團所有user_cards,成功= true以USER_ID
- 總和的所有點由用戶(其存儲在卡表)成功user_cards
- 顯示的用戶名(從用戶表)與此用戶
點的總和我試着像GROUP_BY一些方法(&:東西),加入等。但是,我不能使它發揮作用。當我不得不從一張表中分組和彙總東西時,我沒有問題。但是,我不知道如何根據user_card表獲取用戶名和來自另一個表的點數。
我該如何做到這一點?
確實有效。我意識到我錯過了原始文章中的重要信息:每次用戶播放一張卡片時,都會將其存儲在user_card中。該表包含一個名爲「成功」的布爾值 - 如果用戶贏了,則爲「true」,否則爲「false」。我更新了我原來的帖子。 – Oliver
太棒了!您的更新有效!最後一個問題:我現在怎樣才能以總分來降序呢? (在排行榜中,我想要一個包含所有用戶的列表並按積分降序排列) – Oliver
就是這樣!你爲我節省了很多時間!謝謝! – Oliver