ruby-on-rails - 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
标签(如上面的代码所示)但没有这样做。
解决方案
您可能需要更改以下行
accepts_nested_attributes_for :address
到
accepts_nested_attributes_for :address, reject_if: :all_blank
Address
因此,如果所有属性都留空,则关联对象将被完全忽略。
推荐阅读
- macos - Zsh 启动错误,brew 更新后
- mysql - MYSQL 抛出一个语法错误
- python - 无法从不存在的 easy-install.pth 文件中删除条目
- php - Scrutinizer:如何排除 phpunit(或包含 api 密钥的未提交文件?)
- javascript - 如何覆盖文件对象值?
- java - Java 排序集合
- symfony - Symfony 3 - 如何在非服务类中使用记录器服务
- python - 在 Python 中覆盖类属性
- firebase - 未找到添加 Firebase 的默认活动
- listview - Android ListView 高度为 match_parent 减去固定高度