组织可以拥有多个成员,而成员只属于一个组织。会员可以是管理员也可以不是。
如果组织有2个或更多管理员,则只能删除管理员。我希望通过if语句来实现。
Ruby如何计算具有管理特征的组织的成员数量?我现在有:
<% if (member.admin && @organization.members.admin.count < 2) %>
这会产生错误消息:
undefined method 'admin'
这是&&
之后无效的第二部分。如果我删除该部分,它不会产生任何错误。
鉴于@organization.members.count
是计算组织成员数的东西,我认为@organization.members.admin.count
可以用admin = true来计算该组织的成员数。这显然是不正确的。但那么应该我是如何算这个数量的成员呢?
答案 0 :(得分:2)
只需向Member
模型添加管理范围:
class Member < ActiveRecord::Base
scope :admin, -> { where(admin: true) }
end