为什么.where(:attribute => nil)检查nil值?

时间:2012-12-03 04:51:12

标签: ruby-on-rails activerecord

所以这是查询,非常简单:

field = :has_bill
value = nil
scoped.where(field => value)

输出为:

(`electricity_profile_segment_summaries`.`has_swimming_pool` IN ('') OR `electricity_profile_segment_summaries`.`has_swimming_pool` IS NULL)

其中包括nil值和0值。哪个不正确,我想仅表示表中的NULL值。

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

NULL案例手动限制为nil怎么样?

if value.nil?
  scoped.where( "#{field} IS NULL" )
else
  scoped.where( field => value
end