这三个方法在ROR中经常用到,都是用来判断是否为空的。

区别是:

ruby的方法:.nil?、.empty?

rails的方法 :.blank?

用法的区别:

   .nil?    :   判断对象是否存在。

.empty? :   是对象已经存在,判断是否为空字段。

.blank?  :   相当于同时满足 .nil? 和 .empty? 。

注: Rails API中的解释是如果对象是:false, empty, 空白字符都是blank。

      比如说: “”, ” “, nil, [], 和{}都算是blank。  

      也就是说,object.blank? 相当于 object.nil? || object.empty?

.nil? 和 empty? 的简单例子

 1 nil.nil?
 2 => true
 3 
 4 false.nil?
 5 => false
 6 
 7 1.nil?
 8 => false
 9 
10 0.nil?
11 => false
12 
13 "".nil?
14 => false
15 
16 [].nil?
17 => false
18 
19 "".empty?
20 => true
21 
22 "abc".empty?
23 => false
24 
25 [].empty?
26 => true
27 
28 [1, 2, 3].empty?
29 => false

注 : .empty?不能用于整数

1 1.empty?
2 => NoMethodError    #说明 empty? 方法不能用于整数

.blank?的简单例子

 1 true.blank?       
 2 => false
 3 
 4 false.blank?
 5 => true
 6 
 7 "true".blank?    
 8 => false
 9 
10 "".blank?          
11 => true
12 
13 "
".blank?       
14 => true
15 
16 '
'.blank?
17 => false
18 
19 'true'.blank?
20 => false
21 
22 ''.blank?
23 => true
24 
25 1.blank?
26 => false
27 
28 [].blank?
29 => true
30 
31 [1].blank?
32 => true

 原文链接 : http://www.cnblogs.com/zhualike/archive/2009/11/27/1612215.html