Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何计算数据库中同时具有两个特征的实例数_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 如何计算数据库中同时具有两个特征的实例数

Ruby on rails 如何计算数据库中同时具有两个特征的实例数,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,一个组织可以有多个成员,而一个成员只属于一个组织。成员可以是管理员,也可以不是管理员 只有当组织有2个或更多管理员成员时,管理员成员才能被删除。我希望通过一个if语句来实现这一点 Ruby如何计算具有管理员特征的组织的成员数量?我现在有: <% if (member.admin && @organization.members.admin.count < 2) %> 这是&之后的第二部分不起作用。如果我删除该部分,则不会产生错误 考虑到@organizatio

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

只有当组织有2个或更多管理员成员时,管理员成员才能被删除。我希望通过一个if语句来实现这一点

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

<% if (member.admin && @organization.members.admin.count < 2) %>
这是
&
之后的第二部分不起作用。如果我删除该部分,则不会产生错误


考虑到
@organization.members.count
是计算组织成员数量的工具,我认为
@organization.members.admin.count
可以用admin=true计算该组织的成员数量。这显然是错误的。但是我应该如何计算成员的数量呢?

只需在您的
成员
模型中添加一个管理范围:

class Member < ActiveRecord::Base
  scope :admin, -> { where(admin: true) }
end
类成员{where(admin:true)}
结束

发布members表的DB模式,或向我们解释如何在模型中定义admin。谢谢,将其添加到模型后,Ruby确实可以执行
@organization.members.admin.count
class Member < ActiveRecord::Base
  scope :admin, -> { where(admin: true) }
end