我正在开发 Rails 3 中的应用程序。
我有几条记录要保存到我的数据库中。我试图确保数组中的所有对象(记录存储在数组中)在保存之前都是有效的。Owner 模型验证姓名和电子邮件的存在。在 Rails 控制台中,我尝试了以下操作:
@owner = Array.new
=> []
@owner[0] = Owner.new (name:"peter", email:"peter@gmail.com")
=> returns object
@owner[1] = Owner.new (name:"fred", email:"fred@gmail.com")
=> returns object
@owner[2] = Owner.new (name:"", email:"")
=> returns object
@owner[0].valid?
=> true
@owner[1].valid?
=> true
@owner[2].valid?
=> false
@owner.each { |t| t.valid? }
=> returns an array like this: [object1, object2, object3]. I would expect something like this instead: [true,true,false]
我不明白为什么.valid?如果我使用 @owner[i] 单独检查数组的元素,该方法可以正常工作,但如果我使用 .each 遍历数组,则该方法无法正常工作。有人知道可能是什么问题吗?
我想要做的是实现这样的目标:
(@owner.each { |t| t.valid? }).all?
为了确保每条记录都是有效的,然后我可以继续保存它们。
谢谢