首页 > 解决方案 > Rails - 如何忽略嵌套对象的验证?

问题描述

我有一个表格来收集有关医师的信息。每个医生至少可以有一个地址,但医生可以没有任何地址。

下面是我的医生.rb和model.rb文件中定义各自模型的相关代码。

class Physician < ApplicationRecord
  belongs_to :address, optional: true
  accepts_nested_attributes_for :address

class Address < ApplicationRecord
  validates :line_1, presence: true
  validates :city, presence: true

地址有一些必填字段line_1, 和city

我想忽略presence这些字段的要求,仅适用于医师表格。

我尝试使用optional: true标签(如上面的代码所示)但没有这样做。

标签: ruby-on-rails

解决方案


您可能需要更改以下行

accepts_nested_attributes_for :address

accepts_nested_attributes_for :address, reject_if: :all_blank

Address因此,如果所有属性都留空,则关联对象将被完全忽略。


推荐阅读