Ruby on rails 如何在Rails中的一个操作中验证两个或多个单独的记录(不同的模型)?

Ruby on rails 如何在Rails中的一个操作中验证两个或多个单独的记录(不同的模型)?,ruby-on-rails,ruby,activerecord,devise,Ruby On Rails,Ruby,Activerecord,Devise,我有一个定制的designe-create操作,它创建了用户,但也在用户注册时在其他模型中创建了一系列其他记录,这样用户在注册时就有了一些可用的工具。我使用通常的用户注册表单(设计自动生成)和一个额外的文本字段(为用户注册时自动创建的组命名)来完成这些工作。第一个问题是,我想运行所有验证,以确保在保存任何记录之前,组和用户字段都是有效的。当前,将创建用户,如果这样做有效,将创建组以及必要的连接。在保存用户之前,我需要确保组名有效。我是否应该在控制器中包含活动记录验证模块,并使用BEFOR_操作

我有一个定制的designe-create操作,它创建了用户,但也在用户注册时在其他模型中创建了一系列其他记录,这样用户在注册时就有了一些可用的工具。我使用通常的用户注册表单(设计自动生成)和一个额外的文本字段(为用户注册时自动创建的组命名)来完成这些工作。第一个问题是,我想运行所有验证,以确保在保存任何记录之前,组和用户字段都是有效的。当前,将创建用户,如果这样做有效,将创建组以及必要的连接。在保存用户之前,我需要确保组名有效。我是否应该在控制器中包含活动记录验证模块,并使用BEFOR_操作


任何指针都将不胜感激。

对于Desive part,您可以使用
活动记录回调
,您可以在
用户模型
上创建一个方法来验证
组名
的有效性。或者您可以只在您的
模型上使用
活动记录验证模块
,如果记录无效,将不会保存使用并呈现错误列表,
设计
取决于
活动记录

此问题是,在模型启用之前,需要检查控制器中的验证。组名属于模型组而不是用户。您说您有一个自定义的
设计创建操作
。为什么不进一步定制它并运行任何必要的验证呢。例如,当您创建一个新组时,您应该在
组模型上验证其唯一性,如果成功创建了一个新组,您只需继续创建用户,如果用户未创建,则呈现错误,也许,如果您能向我们展示定制的create方法,我可以进一步帮助您,我可以这样做,但我希望避免不必要地访问数据库。在您的示例中,如果创建了组,然后用户验证失败,那么我必须再次删除该组。这是两个可以避免的数据库操作。如果在模型上构建验证,则可以首先检查组是否有效,如果为true,则可以检查用户是否也有效,如果两者都返回true,则可以顺利保存它们。有一个名为
valid?
的实例方法来自
ActiveRecord::Validations
您最好将其分解为另一个问题,或者等待其他人给您答案。