Я работаю над приложением, в котором мне нужно применить проверку уникальности для дочерней реформы в области родительского свойства.
отношения модели:
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]