我正在寻找一种更为惯用的方法来过滤掉数组的零或空的元素.
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