RAILS关于 NIL? PRESENT? EMPTY? ANY? BLANK?

2024-05-12 15:08
文章标签 empty rails nil present blank

本文主要是介绍RAILS关于 NIL? PRESENT? EMPTY? ANY? BLANK?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


  1. nil?

       nil? 判断一个具体的对象是不是为空值的。在rails常用的就是activerecord的对象判断啦。例如a查出来不是空的判断

a = User.find(1)=> a.nil?=> true=> a.present?=> false

但是字符串,空数组 ,空hash查不出来。

=> "".nil?
=> false
=> [].nil?
=> false
=> {}.nil?
=> false


  1. empty? 和 any?

           empty? 和 any? 是通过length来判断的,一般用来判断数组 hash,或者对象集合。

例如:

=> [].empty?=> true=> [].any?=> false=> {}.empty?=> true=> {}.any?=> false

 

不同的是 empty? 和 any?判断结果相反

=> "".empty?
=> true
=> "11".empty?
=> false
=> "".any?
=> 报错
=> "  ".any?
=>报错

any不能判断字符串.

还是看any?的源码吧.

def any?if block_given?to_a.any? { |*block_args| yield(*block_args) }else!empty?end
end

 

2 . present? 和 blank?

present? 和 blank?判断结果相反。看rails源码:

def blank?respond_to?(:empty?) ? empty? : !self
end

 

def present?!blank?
end

 

blank?的判断是结合nil? 和 empty? 用来判断 空值,空字符串,空数组,空hash.

这篇关于RAILS关于 NIL? PRESENT? EMPTY? ANY? BLANK?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/982962

相关文章

Vue3图片上传报错:Required part ‘file‘ is not present.

错误 "Required part 'file' is not present" 通常表明服务器期望在接收到的 multipart/form-data 请求中找到一个名为 file 的部分(即文件字段),但实际上没有找到。这可能是因为以下几个原因: 请求体构建不正确:在发送请求时,可能没有正确地将文件添加到 FormData 对象中,或者使用了错误的字段名。 前端代码错误:在前端代码中,可能

【虚拟机/服务器】配置ngx_http_empty_gif_module记录

下载Nginx源码 查看Nginx内置模块 1、在可视化界面中 可以看到 ngx_http_empty_gif_module.c 是Nginx的内置模块,不需要再进行安装 2、在bash命令行中 tar nginx 解压后进入nginx目录,./configure --help | grep empty_gif 即可查看我想要的 ngx_http_empty_gif_module

nil和Nil的区别

1、nil   nil一般是指把一个对象置空,既完全是一个空对象,完全从内存中释放。   2、Nil   Nil和nil基本没有任何区别,也可以说只要是可以使用nil的地方都可以使用Nil,反之亦然。但是作为程序猿,我们应该更加严谨一些。nil和Nil的区别在于,nil表示置空一个对象,二Nil表示置空一个类。

rails 5的actioncable在某些环境下wss协议被阻止的问题

在调试redmine的一个websocket插件时,在cloud studio环境上遇到action cable的request失败问题,搜google之后,可以通过如下改动解决,在enviroments/development.rb里,做一些设置适配: https://stackoverflow.com/questions/35188892/request-origin-not-allowed-

XCode6 中如何创建empty application工程

在XCode 6中,创建IOS工程时,移除了empty application工程模板。但有时候我们又想创建empty application工程,该怎么办呢? 具体步骤如下: 1、在IOS工程中,选择创建一个Single View Application工程。 2、创建好后,把工程目录下的Main.storyboard和LaunchScreen.xib删除,扔进废纸篓。 3、打开Info

Ruby on Rails 开发 web

Ruby on Rails 正在令整个 Web 开发领域受到震憾。让我们首先了解底层的技术: Ruby 是一门免费的、简单的、直观的、可扩展的、可移植的、解释的脚本语言,用于快速而简单的面向对象编程。类似于 Perl,它支持 处理文本文件和执行系统管理任务的很多特性。 Rails 是用 Ruby 编写的一款完整的、开放源代码的 Web 框架,目的是使用更简单而且更少的代码编写实际使用的应

解决Vue请求 ‘No 'Access-Control-Allow-Origin' header is present on the requested resource’错误

如果我们用VueResouce直接请求,这样写(以豆瓣api为例): this.$http.get('https://api.douban.com//v2/movie/top250').then((response) => {this.movie = response.data;console.log(this.movie); }); 就会报错: 因为这是一个跨域的请求,不能直接

Jquery empty() remove() detach() 方法的区别

引言: 最近项目中用到了这几个方法,感觉很大程度上有些相似,查了Jquery的api,同时也找了很多博客文章,发现还是理解不到区别。最后在很多材料和自己的事例验证中,终于找到了区别,不敢独占特拿出来分享。   方法简介:  empty() This method removes not only child (and other descendant)

Java 技术教程:@JsonInclude(JsonInclude.Include.NON_EMPTY) 注解详解

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰哦) 学习教程(传送门)Java 技术教程:@JsonInclude(JsonInclude.In

webview onCreateWindow url 新标签的打开 target=_blank

截取所有的a标签带 target=”_blank”执行跳转新的页面 1 给webView设置webSettings.setSupportMultipleWindows(true);支持打开多窗口 2WebView.setWebViewClient(new WebViewClient() { …重写的其他方法 下面这个是关键,当发现有target=”_blank”会自动调用该方法 @Ove