0

在阅读了这个线程之后,它涵盖了验证 belongs_to 对象与其 id 之间的区别,我有一个相关的问题:

我有以下验证

validates_presence_of :batch_id
validates_numericality_of :batch_id, :only_integer => true, :greater_than => 0

第二个附加检查验证 :batch_id 是否值得,还是多余?

理论上,Rails 知道 batch_id 的语义含义,并且可以比仅仅存在更彻底地验证它。例如,我不希望通过 batch_id 的值为 -1。

谢谢。

4

1 回答 1

1

你应该使用

belongs_to :batch
validates_presence_of :batch

在这种情况下,Rails 将检查指定的批处理 id 是否存在于数据库中。如果你使用validates_presence_of :batch_id,Rails 只会检查 batch_id 属性是否为整数。如果您不想检查数据库中是否存在但希望它是积极的,您应该使用validates_numericality_of,它不是多余的。

于 2012-04-29T10:24:41.503 回答