如何计算具有两个特征

时间:2015-04-27 21:36:35

标签: ruby-on-rails ruby ruby-on-rails-4

组织可以拥有多个成员,而成员只属于一个组织。会员可以是管理员也可以不是。

如果组织有2个或更多管理员,则只能删除管理员。我希望通过if语句来实现。

Ruby如何计算具有管理特征的组织的成员数量?我现在有:

<% if (member.admin && @organization.members.admin.count < 2) %>

这会产生错误消息:

undefined method 'admin'

这是&&之后无效的第二部分。如果我删除该部分,它不会产生任何错误。

鉴于@organization.members.count是计算组织成员数的东西,我认为@organization.members.admin.count可以用admin = true来计算该组织的成员数。这显然是不正确的。但那么应该我是如何算这个数量的成员呢?

1 个答案:

答案 0 :(得分:2)

只需向Member模型添加管理范围:

class Member < ActiveRecord::Base
  scope :admin, -> { where(admin: true) }
end