惯用的红宝石过滤器为零或空?

我正在寻找一种更为惯用的方法来过滤掉数组的零或空的元素.

我有很多形式的方法

def joined
    [some_method,some_other_method].compact.reject(&:empty?).join(' - ')
end

这将得到some_method和some_other_method的结果,并且只返回非零(一个非常小的本质上等同于reject(&:nil?))和非空的一个.

Array或Enumerable中有什么可以在一个镜头中获得相同的东西吗?

解决方法

在Rails中,您可以拒绝(&:blank?),或者等同地选择(&:present?).

如果这不是一个Rails应用程序,并且你做了很多,我建议你定义你自己的帮助字符串或其他任何你要过滤.

class String
  alias :blank? :empty?
end

class NilClass
  def blank?
    true
  end
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...