Ruby on rails Rails对象在存在时返回false?但这是真的!无
我在活动记录中有一个数据库对象。如果我调用Ruby on rails Rails对象在存在时返回false?但这是真的!无,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我在活动记录中有一个数据库对象。如果我调用object.find(1).present?它返回false,但它存在。呼叫!object.find(1).nil?返回true 为什么会这样?我想!nil==present?nil?和present?是而不是对立面 许多内容既不存在,也不存在,例如空字符串或空数组 "".present? # => false "".nil? # => false [].present? # => false [].nil? # => fal
object.find(1).present?
它返回false
,但它存在。呼叫!object.find(1).nil?
返回true
为什么会这样?我想
!nil==present?
nil?
和present?
是而不是对立面
许多内容既不存在,也不存在,例如空字符串或空数组
"".present? # => false
"".nil? # => false
[].present? # => false
[].nil? # => false
nil?
和present?
是而不是相反
许多内容既不存在,也不存在,例如空字符串或空数组
"".present? # => false
"".nil? # => false
[].present? # => false
[].nil? # => false
为了更好地回答您的问题,让我们看看实现:
def present?
!blank?
end
我们没有看到这里提到的nil?
,只是blank?
,所以我们也来看看blank?
:
def blank?
respond_to?(:empty?) ? !!empty? : !self
end
因此,本质上,如果对象响应为空?
它将调用该对象以获得结果。具有empty?
方法的对象包括数组、哈希、字符串和集合
进一步阅读
为了更好地回答您的问题,让我们看看实现:
def present?
!blank?
end
我们没有看到这里提到的nil?
,只是blank?
,所以我们也来看看blank?
:
def blank?
respond_to?(:empty?) ? !!empty? : !self
end
因此,本质上,如果对象响应为空?
它将调用该对象以获得结果。具有empty?
方法的对象包括数组、哈希、字符串和集合
进一步阅读
是否存在?==!空白?
只需向我们显示您正在使用的代码即可。只需在Rails控制台中运行这些代码,复制并粘贴代码的相关部分。present?==!空白?
只需向我们显示您正在使用的代码即可。只需在Rails控制台中运行这些代码,并复制和粘贴代码的相关部分。。