编辑记录时遇到问题。我的问题是,当我编辑记录时,我必须检查一个名为serial_number
的字段。如果它存在于我的数据库(表合同)中,程序将显示消息以通知用户该值已存在,如果不存在则保存到数据库。
现在我对如何检查serial_number
的值是否存在感到困惑。
我使用Contract.exists?(params[:serial_nuber])
进行检查,但在serial_number
表中存在contracts
值时返回false。
有人可以建议我如何解决这个问题吗?
答案 0 :(得分:2)
validate :serial_number, uniqueness: true
将此行添加到contact.rb。这将检查现有的序列号是否不应与其他合同一起添加。
答案 1 :(得分:0)
您使用了Contract.exists?(params[:serial_number])
这是错误的Contract.exists?(serial_number: params[:serial_number])
如果数据库中已存在serial_number
,它将返回true。
OR
您可以在 contact.rb 文件中添加验证。
validates_uniqueness_of :serial_number, message: "Serial Number already exists."