评估数组是否包含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?