在ActiveRecord中创建对象时如何跳过验证?
如何在Rails控制台创建Article对象时跳过验证?
刚好碰到过类似的测试场景,Rails为这种需求提供了直接的解决方案——你只需要在创建对象时加上validate: false参数,就能绕过所有验证(包括你自定义的article_validation方法)。
方法一:直接用create方法跳过验证
在控制台里执行这条命令即可:
Article.create(title: "sfsfsd", validate: false)
方法二:先构建对象再跳过验证保存
如果需要先对对象做一些其他操作再保存,也可以分两步来:
article = Article.new(title: "sfsfsd") article.save(validate: false)
额外提示:使用create!抛出异常(可选)
如果你希望在创建过程中(哪怕跳过验证)出现错误时抛出异常,可以用create!配合参数:
Article.create!(title: "sfsfsd", validate: false)
⚠️ 注意:这个方式只适合测试、调试这类场景,绝对不要在生产代码中使用——跳过验证会绕过所有数据校验规则,很容易导致数据库存入不合法的数据,破坏数据一致性。
内容的提问来源于stack exchange,提问作者user3576036
相关产品推荐
相关产品推荐

