Duc*_*uch 3 ruby activerecord ruby-on-rails ruby-on-rails-4
我有桌子Games,Badges他们通过桌子连接BadgesGames.
t.integer "badge_id"
t.integer "game_id"
t.boolean "shown", default: false
Run Code Online (Sandbox Code Playgroud)
我有Game对象,我想要找到所有的Badges东西shown
game_object.(condition?).badges
Run Code Online (Sandbox Code Playgroud)
怎么弄?
假设您设置了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
Run Code Online (Sandbox Code Playgroud)
然后你可以使用以下内容:
game.game_badges.where(shown: false).map(&:badge)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |