4

我正在尝试使用块来计算数组中的对象数,如下所示:

cc = u.cookies.count {|n| n.opened}

这个返回 3,这是错误的。我更进一步,做了这个:

cc = u.cookies.count {|n| false}

它应该总是返回 0,但它返回 3 !!!。

这返回 0,就像它应该的那样:

[1,2,3,4].count {|n| false}

这是我的用户模型:

class User < ActiveRecord::Base
    has_many :cookies
end

这是怎么回事?谢谢

4

1 回答 1

3

u.cookiesActiveRecord::Relation,不是数组。

所以无论块是什么,结果都不会改变,你需要做:

cc = u.cookies.where(:opened => true).count
于 2012-12-10T02:51:49.017 回答