gpt4 book ai didi

ruby-on-rails - 大于一的方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:13 26 4
gpt4 key购买 nike

我有一个在 Rails 中运行的查询:

me = User.find(1)
my_groups = me.groups

my_groups 可能会返回多行。

是否有一种快速而肮脏的方法来使用一种方法来确定 my_groupsme.groups 是否大于 1?

也许类似于 my_groups.greater_than_one? 如果不是,您会推荐什么来确定查询是否返回 >1 行?

me.groups 本质上是另一个与 User 关联的表。它基本上显示了特定用户属于哪些“组”。

最佳答案

不需要所有的方法,你可以简单地比较size:

me.groups.size > 1

然而,ActiveRecord::Relation确实有 many?如果有多个记录,它将返回 true。来自 the docs :

Returns true if the collection has more than one record. Equivalent to collection.size > 1.

class Person < ActiveRecord::Base
has_many :pets
end

person.pets.count #=> 1
person.pets.many? #=> false

person.pets << Pet.new(name: 'Snoopy')
person.pets.count #=> 2
person.pets.many? #=> true

如果您只关心是否有 any 元素(即 >0),则有 any (这也是 Ruby core’s Enumerable 的一部分)。但要注意 [nil, false].any? #=> false.

关于ruby-on-rails - 大于一的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18626279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com