Ruby on rails “怎么做?”;空的?“;在Rails模型对象上工作?

Ruby on rails “怎么做?”;空的?“;在Rails模型对象上工作?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,Rails如何确定模型类的实例是否为空 假设我有一个Post模型的实例: #<Post id: 14, related_id: 20999, related_type: "News", text: nil, created_at: "2012-09-01 04:32:27", updated_at: "2012-09-01 04:32:27"> 如果相关对象为空,验证将失败。不过,我不在乎它是“空的”。就我而言,它不是真正的空,而且即使文本字段为零也很好。如果调用空,您应该得到“N

Rails如何确定模型类的实例是否为空

假设我有一个Post模型的实例:

#<Post id: 14, related_id: 20999, related_type: "News", text: nil, created_at: "2012-09-01 04:32:27", updated_at: "2012-09-01 04:32:27">
如果相关对象为空,验证将失败。不过,我不在乎它是“空的”。就我而言,它不是真正的空,而且即使文本字段为零也很好。

如果调用空,您应该得到“NoMethodError:undefined method`empty'”for Post?因为activerecord模型没有定义这样的方法。 你能找到空的吗?方法,例如在数组、字符串、哈希中,但在activerecord实例中没有。实际上,它是一个Ruby方法,而不是Rails或activerecord

如果您能够做到以下几点,请选择:

Post.new.empty?


这是错误的,这意味着在您的模型中的某个地方您定义了空?方法或从其他地方包括。所以检查一下你的模型。希望这对您有所帮助。

empty?
不应在activerecord模型上定义。你能举一个例子,在一个post对象上调用
empty?
返回true吗?根据下面的答案计算出来,谢谢!!啊!非常感谢,现在这一切都是有意义的,很容易修复。
Post.new.empty?
Post.last.empty?
p = Post.last
p.empty?