有没有一种方法可以从ruby mongoid查询返回一个has_many计算字段值?
我的目标是避免多个数据库查询,并一次完成所有查询 我有一个名为“赞助商”的文档对象模型,它有很多玩家有没有一种方法可以从ruby mongoid查询返回一个has_many计算字段值?,ruby,mongoid,Ruby,Mongoid,我的目标是避免多个数据库查询,并一次完成所有查询 我有一个名为“赞助商”的文档对象模型,它有很多玩家 class Sponsor include Mongoid::Document has_many :players field :name, type: String # . . . end class Player include Mongoid::Document belongs_to :sponsor, inverse_of: :players field
class Sponsor
include Mongoid::Document
has_many :players
field :name, type: String
# . . .
end
class Player
include Mongoid::Document
belongs_to :sponsor, inverse_of: :players
field :name, type: String
end
我想获得我的赞助商拥有的玩家的数量,但我想通过调用赞助商
class Sponsor
# . . .
def self.return_all_with_player_count
# do something to get object with injected player count
end
end
# Sponsor.return_all_with_player_count => [{name: 'Someone 1', player_count: 2}, {name: 'Someone 2', player_count: 12}]
##编辑
这是scope
将以某种方式使用的地方吗?尝试此实现,它将返回方法返回所有带有玩家计数的值
def self.return_all_with_player_count
all.map do |sponsor|
{ name: sponsor.name, player_count: sponsor.players.count }
end
end
scope
就像一个过滤器,在这种情况下不适用