Проверяет уникальность дочерней модели, используя Reform в Rails в области родительского - PullRequest
0 голосов
/ 19 марта 2020

Я работаю над приложением, в котором мне нужно применить проверку уникальности для дочерней реформы в области родительского свойства.

отношения модели:

class BillableCompany < Company
  has_many :pay_rate_templates, dependent: :destroy
end

class PayRateTemplate < ApplicationRecord
  has_many :pay_rate_template_shift_types, inverse_of: :pay_rate_template
  has_many :shift_types, through: :pay_rate_template_shift_types
end

class PayRateTemplateShiftType < ApplicationRecord
  belongs_to :pay_rate_template
  belongs_to :shift_type
end

class ShiftType < ApplicationRecord
  has_many :pay_rate_template_shift_types
  has_many :pay_rate_templates, through: :pay_rate_template_shift_types
end

Ниже приведен код реформы, чтобы обеспечить проверки:

require 'disposable/twin/parent'
class PayRateTemplateForm < Reform::Form

  feature Parent
  property :name
  property :billable_company_id
  property :pay_rate_template_shift_types

  validates :name, presence: true
  validates_uniqueness_of :name, scope: :billable_company_id

  collection :pay_rate_template_shift_types, populate_if_empty: PayRateTemplateShiftType do 
    property :pay_rate_template_id
    property :shift_type_id

    validates :shift_type_id, presence: true
    validates_uniqueness_of :shift_type_id, scope: :pay_rate_template_id
  end
end

Это работает для области действия заданного pay_rate_template_id, но я хочу, чтобы уникальность shift_type_id была проверена в области видимости pay_rate_template_id и billable_company_id для обоих

Что-то похожее на это

validates_uniqueness_of :shift_type_id, scope: [:pay_rate_template_id, :billable_company_id]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...