我有一个实现一些验证的模型。是否可以在不创建对象的情况下进行验证?
编辑:我需要的原因如下。我需要按给定的顺序创建两个记录,但如果第二个记录无效,我必须提前验证。如果是这样,则不允许创建第一条记录。
答案 0 :(得分:2)
当然,只需在对象上调用valid?
:
user = User.new
user.valid? #=> false
user.errors #=> 'name missing...'
答案 1 :(得分:2)
甚至没有初始化对象?不。没有将对象持久化到数据库?是。使用valid?
检查它是否有效,如果您想知道哪些验证失败,请使用errors
。
my_obj = MyModel.new(some_attr: "some_value")
unless my_obj.valid?
puts "There were errors!"
p my_obj.errors
end
答案 2 :(得分:2)
@model.valid?
将返回true,否则返回false。如果验证失败,@model.errors
会说出原因