我有一个模型 Person,如果它的类型是“计划的”,则需要一个计划。在它的控制器中(继承自InheritedResources::Base
):
def create
super do
@person.schedule = Schedule.create params[:schedule] if @person.scheduled?
end
end
问题是,我想验证所有“预定”类型的人都有一个时间表。像这样的东西:
validates :schedule, :presence => true, :if => :scheduled?
在 Person 模型中。但是因为调度belongs_to
了一个人,所以它需要在创建自己之前创建人(所以这个人将有一个 ID)。因此,在我的控制器中,人员验证失败,因为需要稍后创建计划。
Rails 中有什么我不知道的东西可以让我执行这些验证吗?如果我使用accepts_nested_attributes_for
,那会允许这些验证通过吗?