评估数组是否包含ruby中的任何项目

是否有更好的方式来宣布这个?

if current_user.received_replies.unread.count > 0 

我想要做的只是在至少有一个unread对象的情况下匹配条件。

 unless current_user.received_replies.unread.empty? # ... end 

或者,如果你的if有另外一个,切换案例(因为unless/else很难得):

 if current_user.received_replies.unread.empty? # ... else # ... end 

我用的是:

 if current_user.received_replies.unread.any? 

来自文档:

 = Array.any?

 (来自ruby核心)
 === Enumerable的实现
 -------------------------------------------------- ----------------------------
   enum.any?  [{| OBJ |  block}]  - > true或false

 -------------------------------------------------- ----------------------------

将集合的每个元素传递给给定的块。 该方法返回
如果块返回false或nil以外的值,则返回true。 如果阻止
没有给出,Ruby添加了一个隐含的{| obj |块  obj}(那是什么?会
如果至少有一个集合成员不是false或nil,则返回true。

        %w {ant bear cat} .any?  {|字|  word.length> = 3}#=> true
        %w {ant bear cat} .any?  {|字|  word.length> = 4}#=> true
        [无,如此,99]。  #=>是的

这可能会更好一些:

 unless current_user.received_replies.unread.empty?