evaluate if array has any items in ruby
有没有更好的申报方法?
1 | if current_user.received_replies.unread.count > 0 |
我要做的是匹配条件,前提是至少有一个
1 2 3 | unless current_user.received_replies.unread.empty? # ... end |
或者,如果你有
1 2 3 4 5 | if current_user.received_replies.unread.empty? # ... else # ... end |
我使用:
1 | if current_user.received_replies.unread.any? |
从文档:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | = Array.any? (from ruby core) === Implementation from Enumerable ------------------------------------------------------------------------------ enum.any? [{|obj| block } ] -> true or false ------------------------------------------------------------------------------ Passes each element of the collection to the given block. The method returns true if the block ever returns a value other than false or nil. If the block is not given, Ruby adds an implicit block of {|obj| obj} (that is any? will return true if at least one of the collection members is not false or nil. %w{ant bear cat}.any? {|word| word.length >= 3} #=> true %w{ant bear cat}.any? {|word| word.length >= 4} #=> true [ nil, true, 99 ].any? #=> true |
这可能是一个小位。
1 | unless current_user.received_replies.unread.empty? |