在阅读this thread之后,它涵盖了验证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。
感谢。
答案 0 :(得分:1)
你应该使用
belongs_to :batch
validates_presence_of :batch
在这种情况下,Rails将检查数据库中现有的指定批处理ID。如果使用validates_presence_of :batch_id
,Rails将只检查batch_id属性的存在为整数。如果您不想检查数据库中的现有数据但是希望它是肯定的,那么您应该使用validates_numericality_of
,这不是多余的。