【问题标题】:Rails model custom validation having one type of association具有一种关联类型的 Rails 模型自定义验证
【发布时间】:2021-11-30 15:11:35
【问题描述】:

我有一个具有has_and_belongs_to_many 关联的模型用户。

app/models/user.rb

has_and_belongs_to_many :advisors, dependent: :destroy
has_and_belongs_to_many :teams, dependent: :destroy

我希望任何一个用户都有顾问协会或有团队。所以想在模型级别添加验证但不明白必须做什么。

【问题讨论】:

    标签: ruby-on-rails ruby activerecord ruby-on-rails-5 has-and-belongs-to-many


    【解决方案1】:

    您可以使用自定义验证方法https://guides.rubyonrails.org/active_record_validations.html#custom-methods

      validate :only_one_association_type
    
      private
      def only_one_association_type
        errors.add(:base, "can't have both types of associations") if advisors.any? && teams.any?
      end
    

    如果顾问和团队都在场,则会向对象添加错误。

    【讨论】:

      猜你喜欢
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多