如何通过连接表中的条件接收对象
我有桌子Games
和Badges
他们通过表BadgesGames
连接。
t.integer "badge_id" t.integer "game_id" t.boolean "shown", default: false
我有Game
对象,我想要找到所有未shown
Badges
game_object.(condition?).badges
怎么弄呢?
假设您设置了has_and_belongs_to_many
‘到’关系:
class Game < ActiveRecord::Base has_many :game_badges has_many :badges, through: :game_badges end class GameBadge < ActiveRecord::Base belongs_to :game belongs_to :badge end class Badge < ActiveRecord::Base has_many :game_badges has_many :games, through: :game_badges end
然后你可以使用以下内容:
game.game_badges.where(shown: false).map(&:badge)