以下是问题所在,我的客户和地址模型如下:

class Customer < ActiveRecord::Base
  has_one :address, as: :addressable
end

class Address < ActiveRecord::Base
  belongs_to :addressable, polymorphic: true
end

我有一个包含呈现地址信息的Customer表单,例如:

# customers/form   
  = f.input :name
  ...
  # render form/address
  = f.input :apto
  = f.input :city
  = f.input :references

我要找的是验证客户表单中的地址字段,如果用户没有输入任何值,则它会阻止其创建或更新

PDD:地址实体是多态的,我可以在任何关系中使用它.但是当我以其他关系的形式使用它时,我不知道如何验证它的字段

如果您能帮助我,我将不胜感激,非常感谢您抽出时间阅读我的文章.

UPDATE 22/12/2022

我想特别验证只在customers中而不在其他实体中的address fields(APTO,城市,参考

因为任何其他实体都可以使用地址,并且在这些实体中,这些字段必须是未经验证的

非常感谢@max,他推荐了valiates_Associates,但是它可以验证所有地址

推荐答案

也许您正在寻找:

validate :validate_fields, if: -> { addressable_type == 'Customer' }

Ruby-on-rails相关问答推荐

本地主机的上衣配置

为什么 2 个关键字参数被解释为 1?

微软安全链接在页面加载前解锁用户

ActiveRecord 错误地转义 JSON 字符串

在单个继承表和另一个表中的类之间建立多对多关联

Ruby Sinatra Web 服务在 localhost:4567 上运行,但不在 IP 上

有没有办法在 Rails 3.1 中检测用户代理

如何添加到序列化数组

bundle和gem安装的区别?

什么是Ruby 用于 BESIDES 轨道?

删除链接在 Rails 3 视图中发送Get而不是Delete

关于在不适合任何地方的 Rails 应用程序中放置类的指南

设计自定义路由和登录页面

Rails Devise:设置密码重置令牌并重定向用户

Rails:如何修复‘生产’环境缺少 secret_key_base

有没有办法列出所有 belongs_to 关联?

Test::Unit Rails - 如何断言一个数字大于另一个?

长期运行项目中的 Rebase Rails 迁移

我的 JavaScript 模式/实践很糟糕.我应该go 哪里寻求帮助?

默认情况下 haml