我有一个表Student(class_id(整数),标记(整数),rank(整数))
在我的Seeds.rb文件中,我写了这样的东西,以便进入表格
Student.create(class_id:2,mark:“abcdef”,rank:2)
当我通过rake db:seed命令将这些数据添加到表中时,我希望我不允许添加此项,因为对于student的标记字段,正在插入字符串而不是整数。但是rails添加了此记录而没有任何问题。
所以我如何确保这种条目不会发生,我的桌子确保类型检查。我是铁杆和postgres的新手
答案 0 :(得分:1)
因此,如下所示的验证将起作用。将其添加到Student
模型。
validates :marks, numericality: { only_integer: true }
每当您尝试创建Student
记录时,Rails将调用此验证。如果它通过则将创建recored,否则不会。有一些方法可以检查记录在rails中是否有效。
阅读指南,了解validation在rails中的工作原理。