我的Project
模型中有一个序列化字段,称为排名。
serialize :rankings
以下是一些查询结果:
@projects = Project.where("rankings IS NULL") -> 0 results
@projects = Project.where("rankings = ?", "") -> 0 results
@projects = Project.where("rankings = ?", {}) -> 0 results
@projects = Project.where("rankings = ?", "{}") -> 0 results
@projects = Project.where("rankings = ?", {}.to_yaml) -> 0 results
Project.find(275).rankings -> nil
这适用于具有100个nil的表(其中#275是一个)。这是怎么回事?
最佳答案
这就是答案。
要在Rails中使用序列化字段查询nil,您必须执行以下操作:
@projects = Project.where("rankings = ?", nil.to_yaml)