首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby的`.present?`没有Rails?

Ruby的`.present?`没有Rails?
EN

Stack Overflow用户
提问于 2018-04-17 11:48:40
回答 2查看 1.7K关注 0票数 4

我正在开发一个用于自动化的“Rails无”Ruby守护进程(尽管理论上它运行在Rails目录中)。出于一般目的和原则,我希望找到(大多数)“原生”.present?/.blank?/.empty?/.nil?方法来利用Ruby的/common来识别数组或(散列)值是否存在且不为空(即[]{})。

从我拥有的朗读 (例如堆栈溢出)和测试来看,所有这些函数似乎都是特定于Rails的方法,是ActiveSupport(?)的一部分。

它来自于其他web/解释器语言(PHP、Python、JS等),这是一个通用的逻辑函数--大多数语言(数组)都有这样或那样的功能(例如PHP的isset( ... )或JavaScript的.length)。

我知道RegEx为.blank?提供了一些解决方案,但是.present?似乎需要异常处理来识别它是否“存在”)。我很难相信它不存在,但是没有Rails的参与,几乎没有关于Ruby的讨论。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-17 12:01:50

Active Support被分解成小块,这样您就可以加载所需的内容。对于.blank?.present?方法,只需:

代码语言:javascript
复制
require 'active_support/core_ext/object/blank.rb'

如医生所说

Object#nil?Array#empty?Hash#empty?已经定义好了,所以您不需要任何东西来使用require

确保系统中安装了active_support gem

票数 6
EN

Stack Overflow用户

发布于 2018-04-17 12:00:28

您可以使用ActiveSupport,而无需在应用程序中包含所有rails,这是非常常见的。

nil?empty?是在标准库中定义的。

例如,String#empty?只是在测试长度是否为0。

若要使用活动支持,只需安装gem或将其添加到您的gem文件中即可:

代码语言:javascript
复制
require 'active_support'

文档还声明您可以选择您想要的核心扩展:

代码语言:javascript
复制
require 'active_support/core_ext/object/blank'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49877288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档