Ruby on rails 如何在联接表中使用计数条件构造此联接?

Ruby on rails 如何在联接表中使用计数条件构造此联接?,ruby-on-rails,Ruby On Rails,我正在尝试寻找“开放”游戏,这是一种有玩家空缺的游戏。游戏由num_玩家创建,表示该游戏的最大玩家容量 游戏有很多玩家 我尝试了以下方法 Game.find(:all, :include => :players, :group => 'players.game_id', :conditions => ['players.count(*) < games.num_players']) Game.find(:all,:include=>:players,:group=>'p

我正在尝试寻找“开放”游戏,这是一种有玩家空缺的游戏。游戏由
num_玩家创建,表示该游戏的最大玩家容量

游戏
有很多玩家

我尝试了以下方法

Game.find(:all, :include => :players, :group => 'players.game_id', :conditions => ['players.count(*) < games.num_players'])
Game.find(:all,:include=>:players,:group=>'players.Game\u id',:conditions=>['players.count(*)
但它不喜欢条件中的计数(*)

简而言之:

Game.find(:all, :include => :players, :group => 'players.game_id', 
  :select => "games.*, COUNT(players.id) AS players_count", 
  :conditions => "players_count < games.num_players"
  )
使其成为命名范围的额外点数:

class Game < ActiveRecord::Base
  has_many :players

  named_scope :open, :conditions => "games.players_count < games.num_players"
  named_scope :type, lambda {|type| 
    {:conditions => {:type => type}}
  }
  named_scope :baseball, :conditions => {:type => "baseball"}
end

Game.open # => Returns all open games.
Game.baseball.open # => Returns all open baseball games.
Game.open.type("football") # => Returns all open foot ball games.
类游戏“games.players\u count{:type=>type}
}
命名范围:棒球,:条件=>{:类型=>“棒球”}
结束
Game.open#=>返回所有打开的游戏。
Game.barball.open#=>返回所有公开的棒球比赛。
Game.open.type(“football”)#=>返回所有公开的足球比赛。
class Game < ActiveRecord::Base
  has_many :players

  named_scope :open, :conditions => "games.players_count < games.num_players"
  named_scope :type, lambda {|type| 
    {:conditions => {:type => type}}
  }
  named_scope :baseball, :conditions => {:type => "baseball"}
end

Game.open # => Returns all open games.
Game.baseball.open # => Returns all open baseball games.
Game.open.type("football") # => Returns all open foot ball games.