ruby-on-rails 如何在Rails中验证多态字段关联?

t3psigkw  于 2022-12-24  发布在  Ruby
关注(0)|答案(1)|浏览(166)
    • bounty将在5天后过期**。回答此问题可获得+50声望奖励。Samuel D.希望引起更多人对此问题的关注:我正在寻找的是验证地址字段(如城市,参考,apto)在表单客户端只。地址是一个关联,可以在任何嵌套表单中找到。我已经使用validates_associated方法,但它验证所有字段

下面是问题,我有一个客户和地址模型如下:

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

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

我有一个带有呈现地址信息的客户表单,例如:

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

我正在寻找的是验证客户表单中的地址字段,如果用户不输入任何值,则会阻止其创建或更新
pdd:地址实体是多态的,我可以在任何关系中使用它,但是当我以其他关系的形式使用它时,我不知道如何验证它的字段
如果你能帮助我,我将不胜感激,非常感谢你花时间读我的书。

    • 2022年12月22日更新**

我想专门验证仅在customers中而不在其他实体中的address字段(apto、city、reference
由于任何其他实体都可以使用地址,并且在这些实体中,字段必须未经验证
非常感谢@max推荐validates_associates,不过它会验证所有地址

tvokkenx

tvokkenx1#

也许您正在寻找:

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

相关问题