可能有.any吗?有两个块的方法?

时间:2018-11-07 11:18:48

标签: ruby

我有这段代码来确定返回的类:

def level_class(projects)
  return 'badge-danger' if projects.any?(&:suspicious_content?) || projects.any?(&:tiny_description?)
  'badge-info'
end

是否可以“合并” &:suspicious_content?&:tiny_description?

那是行不通的,但是类似projects.any?(&:suspicious_content? || &:tiny_description?)这样的东西会很酷!

1 个答案:

答案 0 :(得分:2)

“合并”没有意义,因为您的问题的注释已指出。但是,您可以实现与后一种情况几乎相同的事情:

projects.any?{ |i| i.suspicious_content? || i.tiny_description? }

或者,如果您想多次使用块,则可以执行以下操作:

b = lambda{ |i| i.suspicious_content? || i.tiny_description? }
projects.any? &b