【问题标题】:Validate Presence of has_many Associations验证 has_many 关联的存在
【发布时间】:2015-10-31 00:56:09
【问题描述】:

假设我有一个 Person 模型和 Address 模型:

    class Address < ActiveRecord::Base
     belongs_to :person
     enum addresstype: {"primary" => 0, "bank" => 1}
    end

    class Person < ActiveRecord::Base
     has_many :addresses
     accepts_nested_attributes_for :addresses, allow_destroy: true
    end

如何验证 Person 模型是否存在每个人至少一个主要地址和一个银行地址?

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

您可以编写一个自定义验证器。类似这样的东西应该可以工作:

class Person < ActiveRecord::Base
  has_many :addresses
  accepts_nested_attributes_for :addresses, allow_destroy: true

  validate :minimum_address_requirements_met

  def minimum_address_requirements_met
    errors.add :addresses, 'must include a primary address' if addresses.primary.empty?
    errors.add :addresses, 'must include a bank address' if addresses.bank.empty?
  end
end

【讨论】:

    猜你喜欢
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    相关资源
    最近更新 更多