gpt4 book ai didi

mysql - Ruby 跨多个表的高级事件记录查询

转载 作者:行者123 更新时间:2023-11-29 23:54:35 24 4
gpt4 key购买 nike

我是个新手,在我正在开发的应用程序中取得进展时遇到了一个问题。

我建立了以下关系

游戏

belongs_to :challenge  
has_many :game_players, through: :playersessions, source: :user
has_many :playersessions

挑战

has_many :phrases
has_many :games

短语

has_many :playedphrases
has_many :playersessions, through: :playedphrases

播放短语

belongs_to :playersession
belongs_to :phrase

玩家 session

has_many :playedphrases
has_many :phrases, through: :playedphrases

所有这些关系都在我的程序中起作用,但我需要开始进行一些更高级的查询。例如,我想找到剩下的短语。用英语来说,它是“找到这个游戏的挑战短语并删除这个游戏的玩家 session 短语”。我认为问题在于 @game.challenge.phrases 返回 Phrase 对象,并且必须迭代 @game.playersessions 才能找到所有短语对象。

有关如何处理此类查询的任何指导吗?如果有任何其他信息有帮助,请告诉我。

最佳答案

我终于找到了一种方法来实现这一点 - 我不知道它是否是最 Eloquent ruby​​,但它确实有效。

       def determine_remaining_phrases
remain = @game.challenge.phrases

@playersessions.each do |session|
remain -= session.phrases
end

return remain
end

基本上,我需要遍历玩家 session 并删除每次通过的相关短语。这给我留下了一系列短语对象。如果有人有更 Eloquent 答案,请告诉我。

关于mysql - Ruby 跨多个表的高级事件记录查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com