【发布时间】:2016-07-12 13:38:33
【问题描述】:
我在验证一些复杂关联中的两个对象时遇到了困难。这是我所拥有的示例:
car.rb
class Car
has_many :passengers
end
passenger.rb
class Passenger
belongs_to :car
belongs_to :info
end
我需要做的验证:
- 人数有限
- 乘客与名为
Info的对象有关联,该对象具有“Employer”作为字符串。所有乘客必须有相同的雇主。
界面有一个多选框来选择乘客。选择完乘客后,单击“创建”(或“更新”,它有自己的一系列问题)。
当控制器尝试创建Car 时,它需要运行汽车验证,然后乘客验证需要通过(雇主检查),然后汽车还需要确保它不超过乘客数量。如果其中一个失败,我需要重置并将它们带回新页面。
更新过程中,如果失败,我需要将原来的乘客恢复到车上。我不确定如何在不将对象实际保存到数据库的情况下执行验证。另外,一旦对象被保存到数据库中,如果验证失败,那么我不知道如何恢复以前的乘客。
如何在将关联对象保存到数据库之前对其进行验证?
【问题讨论】: