【发布时间】:2013-07-20 19:47:55
【问题描述】:
我使用的是 Ruby 1.9.3。
这就是控制台中发生的事情:
1.9.3-p392 :028 > p = Product.find(1)
Product Load (0.4ms) SELECT `products`.* FROM `products` WHERE `products`.`id` = 1 LIMIT 1
=> #<Product id: 1, name: "Product 4", image: nil, available: true>
1.9.3-p392 :029 > p.image
=>
1.9.3-p392 :030 > p.image.nil?
=> false
当产品被退回时,图像显然是 nil,但是当我尝试获取值 (p.image) 时,它没有显示任何内容。
为什么p.image.nil? 命令没有返回true?
【问题讨论】:
-
使用
p.image.equal? nil时会发生什么(检查前提)?p.image.method(:nil?)返回什么(检查废话覆盖)? -
虽然@Reza 的回答在这种情况下是一种有效的解决方法,但它并没有解释为什么会发生这种情况。将来,有关您的模型的问题应至少包括模型代码的相关部分。
标签: ruby-on-rails ruby