Rails:检查实例是否有效,而不检查关联是否有效

Rails: Check if instance is valid without checking if associations are valid

提问人:duhaime 提问时间:8/8/2023 最后编辑:duhaime 更新时间:8/14/2023 访问量:41

问:

我们有一个模型,has_many:ZooAnimal

  has_many(
    :animals,
    validate: false,
  )

我想检查控制器内是否有效,但在此控制器内,我不想检查关联的对象是否有效。ZooAnimal

在所有其他上下文中,我想验证关联的 s 是否有效。Animal

我们如何检查这是否有效?Zoo

Ruby-on-Rails 验证

评论

0赞 Archonic 8/8/2023
你的动物园模型有声明吗?validates_associated :animals
0赞 duhaime 8/8/2023
否定的,但如果它是相关的,一个 ,我们在模型中确实有一个Animalbelongs_toAnimalKeeperhas_many :animal_keepers, through: :animalsZoo
0赞 Archonic 8/8/2023
belongs_to具有默认状态检查,除非您将其设置为可选。因此,如果您在 Zoo 上有belongs_to,则可能需要添加到关联语句中。如果不是这样,看看错误是什么样子会很有帮助。你可以打电话给.optional: truezoo.valid?zoo.errors.full_messages
0赞 mechnicov 8/8/2023
简单有什么问题?zoo.valid?
0赞 duhaime 8/9/2023
检查似乎正在对关联运行验证。其他人似乎观察到了一个相关的错误:github.com/rails/rails/issues/25718zoo.valid?

答:

0赞 Crazy Cat 8/14/2023 #1

您是否尝试将上下文传递给有效方法? 例如:-

zoo.valid?(:create)