我正在开发一个用于自动化的“Rails无”Ruby守护进程(尽管理论上它运行在Rails目录中)。出于一般目的和原则,我希望找到(大多数)“原生”.present?/.blank?/.empty?/.nil?方法来利用Ruby的/common来识别数组或(散列)值是否存在且不为空(即[]或{})。
从我拥有的朗读 (例如堆栈溢出)和测试来看,所有这些函数似乎都是特定于Rails的方法,是ActiveSupport(?)的一部分。
它来自于其他web/解释器语言(PHP、Python、JS等),这是一个通用的逻辑函数--大多数语言(数组)都有这样或那样的功能(例如PHP的isset( ... )或JavaScript的.length)。
我知道RegEx为.blank?提供了一些解决方案,但是.present?似乎需要异常处理来识别它是否“存在”)。我很难相信它不存在,但是没有Rails的参与,几乎没有关于Ruby的讨论。
发布于 2018-04-17 12:01:50
Active Support被分解成小块,这样您就可以加载所需的内容。对于.blank?和.present?方法,只需:
require 'active_support/core_ext/object/blank.rb'如医生所说。
Object#nil?、Array#empty?和Hash#empty?已经定义好了,所以您不需要任何东西来使用require。
确保系统中安装了active_support gem
发布于 2018-04-17 12:00:28
您可以使用ActiveSupport,而无需在应用程序中包含所有rails,这是非常常见的。
nil?和empty?是在标准库中定义的。
例如,String#empty?只是在测试长度是否为0。
若要使用活动支持,只需安装gem或将其添加到您的gem文件中即可:
require 'active_support'文档还声明您可以选择您想要的核心扩展:
require 'active_support/core_ext/object/blank'https://stackoverflow.com/questions/49877288
复制相似问题