【发布时间】:2012-12-30 03:30:53
【问题描述】:
我有一个模型 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一个Person,它需要在创建自己之前创建这个人(所以这个人会有一个ID)。因此,在我的控制器中,人员验证失败,因为需要稍后创建计划。
Rails 中有什么我不知道的东西可以让我执行这些验证吗?如果我使用了accepts_nested_attributes_for,那会允许这些验证通过吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 validation relationship