0

我有三个模型:用户,属于音乐会,属于地区。一个用户在一个地区听音乐会。模型belongs_to关系分别建立。

在 Concerts 控制器中,我计算收听 Concert 的用户数量,如下所示:

@listeners = @concert.users.count

但是,我想在区域级别列出每场音乐会的听众人数。在我的区域控制器中,我想做这样的事情:

@all_listeners = @region.concert.users.count. 每个地区的每场音乐会的听众人数。我知道这段代码不正确,但这是一般的想法。任何正确方向的观点都值得赞赏。

4

1 回答 1

0

将 a 添加has_many :through到您的 Region 类。

class User < ActiveRecord::Base
  belongs_to :concert
end

class Concert < ActiveRecord::Base
  belongs_to :region
  has_many :users
end

class Region < ActiveRecord::Base
  has_many :concerts
  has_many :users, :through => :concerts
end

然后你可以这样计算一个地区的用户:

@all_listeners = @region.users.count
于 2013-04-19T19:53:36.037 回答