gpt4 book ai didi

ruby-on-rails - 无法在Rails 3中跳过验证?

转载 作者:行者123 更新时间:2023-12-03 12:06:43 25 4
gpt4 key购买 nike

我正在Rails 3中的一个项目上,我需要创建一个空记录,将其保存到数据库中而不进行验证(因为它是空的),然后允许用户编辑该记录以完成记录,并从中进行验证然后出来。

现在,我遇到了一个非常基本的问题:在任何情况下,我似乎都无法在不验证模型的情况下保存模型。

我在控制台中尝试了以下操作:

model = Model.new
model.save(false) # Returns RuntimeError: Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
model.save( :validate => false ) # Returns same error as above

model = Model.create
model.save(false) # Same runtime error
model.save( :validate => false ) # Same runtime error

然后,我尝试将模型中的所有验证更改为 :on => :update。任何尝试保存时都会出现相同的错误消息。

那我在这里想念什么?如何创建一个空记录,然后在用户对其进行编辑时进行验证?

谢谢!

最佳答案

通过常规用例保存无效模型是一个不好的做法。请使用条件验证:

validates_presence_of :title, :unless => :in_first_stage?

或者,如果您有很多:
with_options :unless => :in_first_stage? do
validates_presence_of :title
validates_presence_of :author
end

这样一来,夜间进行完整性测试就无济于事了,该测试会检查所有记录的有效性。

一个无需验证即可保存的有效用例将用于测试边缘情况,例如测试是否实现了数据库约束。

关于ruby-on-rails - 无法在Rails 3中跳过验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com